67 lines
1.6 KiB
JavaScript
67 lines
1.6 KiB
JavaScript
/*browser.browserAction.onClicked.addListener(function (e) {
|
|
console.log("This is a nice test!", e);
|
|
});*/
|
|
|
|
browser.runtime.onMessage.addListener(async (message, sender, sendResponse) => {
|
|
if (message.type !== "MY_GET_URL") return;
|
|
|
|
let windowList = (await browser.storage.local.get("windows")).windows ?? [];
|
|
if (windowList.length !== 1) {
|
|
browser.tabs.sendMessage(sender.tab.id, {
|
|
type: "MY_GET_URL_R",
|
|
error: "Invalid number of pages marked as target",
|
|
data: windowList,
|
|
});
|
|
return;
|
|
}
|
|
|
|
const tab = await browser.tabs.get(windowList[0]);
|
|
|
|
browser.tabs.sendMessage(sender.tab.id, {
|
|
type: "MY_GET_URL_R",
|
|
url: tab.url,
|
|
all_data: tab,
|
|
});
|
|
});
|
|
|
|
browser.runtime.onInstalled.addListener(async () => {
|
|
console.log(browser);
|
|
|
|
await browser.storage.local.set({
|
|
windows: [],
|
|
});
|
|
|
|
// Clear the menus from the prev install
|
|
browser.menus.removeAll();
|
|
browser.menus.create({
|
|
id: "mark-page",
|
|
title: "Mark Page As the Glassdoor target",
|
|
contexts: ["all"],
|
|
});
|
|
|
|
browser.menus.create({
|
|
id: "mark-page-clear",
|
|
title: "Clear Marked Pages",
|
|
contexts: ["all"],
|
|
});
|
|
|
|
browser.menus.onClicked.addListener(async function (e, tab) {
|
|
let windowList =
|
|
(await browser.storage.local.get("windows")).windows ?? [];
|
|
if (e.menuItemId === "mark-page") {
|
|
console.log("marking page", tab);
|
|
if (windowList.includes(tab.id)) {
|
|
windowList = windowList.filter((a) => a !== tab.id);
|
|
} else {
|
|
windowList.push(tab.id);
|
|
}
|
|
} else if (e.menuItemId === "mark-page-clear") {
|
|
windowList = [];
|
|
console.log("clear");
|
|
}
|
|
await browser.storage.local.set({
|
|
windows: windowList,
|
|
});
|
|
});
|
|
});
|