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:
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;
+ },
};