tor-browser

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

commit db2cf4836765f25968b7600416fd4e67878b8e1e
parent 91f03bda7849df83d296766b1967fcb9701b8297
Author: Elissa Cha <echa@mozilla.com>
Date:   Fri, 12 Dec 2025 13:10:34 +0000

Bug 2000937 - load full page assistant for ai window new tabs r=Mardak,ai-frontend-reviewers

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

Diffstat:
Mbrowser/base/content/test/utilityOverlay/browser_openWebLinkIn.js | 21+++++++++++++++++++++
Mbrowser/base/content/utilityOverlay.js | 5+++++
Mbrowser/components/aiwindow/ui/modules/AIWindow.sys.mjs | 8+++++++-
3 files changed, 33 insertions(+), 1 deletion(-)

diff --git a/browser/base/content/test/utilityOverlay/browser_openWebLinkIn.js b/browser/base/content/test/utilityOverlay/browser_openWebLinkIn.js @@ -162,3 +162,24 @@ add_task(async function test_open_non_private_tab_from_only_private_window() { await BrowserTestUtils.closeWindow(nonPrivateWindow); await BrowserTestUtils.closeWindow(privateWindow); }); + +add_task(async function test_open_ai_window_tab_in_ai_window() { + await SpecialPowers.pushPrefEnv({ + set: [["browser.aiwindow.enabled", true]], + }); + let win = await BrowserTestUtils.openNewBrowserWindow({ aiWindow: true }); + + let tabPromise = BrowserTestUtils.waitForNewTab(win.gBrowser); + win.BrowserCommands.openTab({}); + let tab = await tabPromise; + + Assert.equal( + tab.linkedBrowser.currentURI.spec, + AIWindow.newTabURL, + "New tab in an AI Window should load AIWindow.newTabURL" + ); + + await BrowserTestUtils.removeTab(tab); + await BrowserTestUtils.closeWindow(win); + await SpecialPowers.popPrefEnv(); +}); diff --git a/browser/base/content/utilityOverlay.js b/browser/base/content/utilityOverlay.js @@ -23,6 +23,8 @@ ChromeUtils.defineESModuleGetters(this, { PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.sys.mjs", ShellService: "moz-src:///browser/components/shell/ShellService.sys.mjs", URILoadingHelper: "resource:///modules/URILoadingHelper.sys.mjs", + AIWindow: + "moz-src:///browser/components/aiwindow/ui/modules/AIWindow.sys.mjs", }); ChromeUtils.defineLazyGetter(this, "ReferrerInfo", () => @@ -63,6 +65,9 @@ Object.defineProperty(this, "BROWSER_NEW_TAB_URL", { return "about:privatebrowsing"; } } + if (AIWindow.isAIWindowActive(window)) { + return AIWindow.newTabURL; + } return AboutNewTab.newTabURL; }, }); diff --git a/browser/components/aiwindow/ui/modules/AIWindow.sys.mjs b/browser/components/aiwindow/ui/modules/AIWindow.sys.mjs @@ -5,6 +5,8 @@ */ import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs"; +const AIWINDOW_URL = "chrome://browser/content/aiwindow/aiWindow.html"; + /** * AI Window Service */ @@ -70,7 +72,7 @@ export const AIWindow = { const aiWindowURI = Cc["@mozilla.org/supports-string;1"].createInstance( Ci.nsISupportsString ); - aiWindowURI.data = "chrome://browser/content/aiwindow/aiWindow.html"; + aiWindowURI.data = AIWINDOW_URL; args.appendElement(aiWindowURI); const aiOption = Cc["@mozilla.org/hash-property-bag;1"].createInstance( @@ -103,4 +105,8 @@ export const AIWindow = { isAIWindowEnabled() { return this.AIWindowEnabled; }, + + get newTabURL() { + return AIWINDOW_URL; + }, };