OpenTabsProvider.sys.mjs (892B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 5 const lazy = {}; 6 7 ChromeUtils.defineESModuleGetters(lazy, { 8 BrowserWindowTracker: "resource:///modules/BrowserWindowTracker.sys.mjs", 9 UrlbarProviderOpenTabs: 10 "moz-src:///browser/components/urlbar/UrlbarProviderOpenTabs.sys.mjs", 11 }); 12 13 export function getOpenTabs() { 14 // We only want public tabs, so isInPrivateWindow = false 15 let urls = lazy.UrlbarProviderOpenTabs.getOpenTabUrls(false); 16 return Array.from(urls.keys()); 17 } 18 19 export function switchToOpenTab(url) { 20 // We only want public tabs, so skip private top windows 21 let win = lazy.BrowserWindowTracker.getTopWindow({ 22 allowFromInactiveWorkspace: true, 23 private: false, 24 }); 25 win?.switchToTabHavingURI(url); 26 }