1
0
mirror of https://github.com/XFox111/TabsAsideExtension.git synced 2026-04-22 07:58:01 +03:00

!feat: tabGroups API for Firefox 139

This commit is contained in:
2025-05-23 16:45:50 +03:00
parent e498e25c57
commit 405f9163f2
4 changed files with 20 additions and 46 deletions
-3
View File
@@ -68,9 +68,6 @@ async function createGroup(group: GroupItem, windowId: number, discard?: boolean
createProperties: { windowId } createProperties: { windowId }
}); });
// Grouping support came in 138, tabGroups is expected to be in 139
// TODO: Remove this check once the API is available
if (!import.meta.env.FIREFOX)
await chrome.tabGroups.update(groupId, { await chrome.tabGroups.update(groupId, {
title: group.title, title: group.title,
color: group.color color: group.color
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"name": "tabs-aside", "name": "tabs-aside",
"private": true, "private": true,
"version": "3.0.0-rc4", "version": "3.0.0-rc5",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "wxt", "dev": "wxt",
+2 -23
View File
@@ -88,17 +88,9 @@ async function createCollectionFromTabs(tabs: Tabs.Tab[]): Promise<[CollectionIt
tabs.every(i => i.groupId === tabs[0].groupId) tabs.every(i => i.groupId === tabs[0].groupId)
) )
{ {
// TODO: Remove the check when Firefox 139 is out const group = await chrome.tabGroups.get(tabs[0].groupId);
if (!import.meta.env.FIREFOX)
{
const group = await browser.tabGroups!.get(tabs[0].groupId);
collection.title = group.title; collection.title = group.title;
collection.color = group.color; collection.color = group.color;
}
else
{
collection.color = "blue";
}
tabs.forEach(i => tabs.forEach(i =>
collection.items.push({ type: "tab", url: i.url!, title: i.title }) collection.items.push({ type: "tab", url: i.url!, title: i.title })
@@ -123,19 +115,7 @@ async function createCollectionFromTabs(tabs: Tabs.Tab[]): Promise<[CollectionIt
if (!activeGroup || activeGroup !== tab.groupId) if (!activeGroup || activeGroup !== tab.groupId)
{ {
activeGroup = tab.groupId; activeGroup = tab.groupId;
const group = await chrome.tabGroups.get(activeGroup);
// TODO: Remove the check when Firefox 139 is out
if (import.meta.env.FIREFOX)
{
collection.items.push({
type: "group",
color: "blue",
items: []
});
}
else
{
const group = await browser.tabGroups!.get(activeGroup);
collection.items.push({ collection.items.push({
type: "group", type: "group",
@@ -144,7 +124,6 @@ async function createCollectionFromTabs(tabs: Tabs.Tab[]): Promise<[CollectionIt
items: [] items: []
}); });
} }
}
(collection.items[collection.items.length - 1] as GroupItem).items.push({ (collection.items[collection.items.length - 1] as GroupItem).items.push({
type: "tab", type: "tab",
+5 -7
View File
@@ -24,7 +24,8 @@ export default defineConfig({
description: "__MSG_manifest_description__", description: "__MSG_manifest_description__",
homepage_url: "https://github.com/xfox111/TabsAsideExtension/", homepage_url: "https://github.com/xfox111/TabsAsideExtension/",
action: { action:
{
default_title: "__MSG_manifest_name__" default_title: "__MSG_manifest_name__"
}, },
@@ -36,7 +37,8 @@ export default defineConfig({
"tabs", "tabs",
"notifications", "notifications",
"contextMenus", "contextMenus",
"bookmarks" "bookmarks",
"tabGroups"
], ],
commands: commands:
@@ -78,17 +80,13 @@ export default defineConfig({
gecko: gecko:
{ {
id: "tabsaside@xfox111.net", id: "tabsaside@xfox111.net",
strict_min_version: "138.0" strict_min_version: "139.0"
} }
}; };
// @ts-expect-error author key in Firefox has a different format // @ts-expect-error author key in Firefox has a different format
manifest.author = "__MSG_manifest_author__"; manifest.author = "__MSG_manifest_author__";
} }
else
{
manifest.permissions!.push("tabGroups");
}
return manifest; return manifest;
} }