From 8f4cd4198a87104bf14359050722483497eb0ac6 Mon Sep 17 00:00:00 2001 From: Eugene Fox Date: Thu, 8 May 2025 09:05:21 +0300 Subject: [PATCH] fix: groupig fails on private windows when group contains restricted tabs --- entrypoints/sidepanel/utils/opener.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/entrypoints/sidepanel/utils/opener.ts b/entrypoints/sidepanel/utils/opener.ts index 29fca28..a0c66dd 100644 --- a/entrypoints/sidepanel/utils/opener.ts +++ b/entrypoints/sidepanel/utils/opener.ts @@ -55,8 +55,8 @@ export async function openGroup(group: GroupItem, newWindow: boolean = false): P async function createGroup(group: GroupItem, windowId: number, discard?: boolean): Promise { discard ??= await settings.dismissOnLoad.getValue(); - const tabIds: number[] = await Promise.all(group.items.map(async i => - (await createTab(i.url, windowId, discard, group.pinned)).id! + const tabs: Tabs.Tab[] = await Promise.all(group.items.map(async i => + await createTab(i.url, windowId, discard, group.pinned) )); // "Pinned" group is technically not a group, so not much else to do here @@ -65,9 +65,8 @@ async function createGroup(group: GroupItem, windowId: number, discard?: boolean return; const groupId: number = await chrome.tabs.group({ - tabIds, createProperties: { - windowId - } + tabIds: tabs.filter(i => i.windowId === windowId).map(i => i.id!), + createProperties: { windowId } }); await chrome.tabGroups.update(groupId, { @@ -79,12 +78,14 @@ async function createGroup(group: GroupItem, windowId: number, discard?: boolean async function manageWindow(handle: (windowId: number) => Promise, windowProps?: Windows.CreateCreateDataType): Promise { const currentWindow: Windows.Window = windowProps ? - await browser.windows.create({ url: "about:blank", focused: true, ...windowProps }) : + await browser.windows.create({ url: "about:blank", focused: false, ...windowProps }) : await browser.windows.getCurrent(); const windowId: number = currentWindow.id!; await handle(windowId); + await browser.windows.update(windowId, { focused: true }); + if (windowProps) // Close "about:blank" tab await browser.tabs.remove(currentWindow.tabs![0].id!);