34 lines
890 B
JavaScript
34 lines
890 B
JavaScript
/* global chrome */
|
|
|
|
const DEFAULT_DOCKDECK_URL = "http://127.0.0.1:1218/";
|
|
const NEW_TAB_URLS = new Set([
|
|
"chrome://newtab/",
|
|
"opera://startpage/",
|
|
"opera://startpageshared/",
|
|
]);
|
|
|
|
async function openDockDeckForNewTab(tabId, url) {
|
|
if (NEW_TAB_URLS.has(url)) {
|
|
const { dockdeckUrl } = await chrome.storage.sync.get({
|
|
dockdeckUrl: DEFAULT_DOCKDECK_URL,
|
|
});
|
|
chrome.tabs.update(tabId, { url: dockdeckUrl });
|
|
}
|
|
}
|
|
|
|
chrome.tabs.onCreated.addListener((tab) => {
|
|
openDockDeckForNewTab(tab.id, tab.pendingUrl || tab.url || "");
|
|
});
|
|
|
|
chrome.tabs.onUpdated.addListener((tabId, changeInfo) => {
|
|
if (changeInfo.url) {
|
|
openDockDeckForNewTab(tabId, changeInfo.url);
|
|
}
|
|
});
|
|
|
|
chrome.runtime.onStartup.addListener(() => {
|
|
chrome.storage.sync
|
|
.get({ dockdeckUrl: DEFAULT_DOCKDECK_URL })
|
|
.then(({ dockdeckUrl }) => chrome.tabs.create({ url: dockdeckUrl }));
|
|
});
|