Fix popup communication on Firefox

This commit is contained in:
Ajay
2022-06-02 18:47:03 -04:00
parent 5820758563
commit 96173dd901
2 changed files with 18 additions and 3 deletions

View File

@@ -84,7 +84,20 @@ chrome.runtime.onMessage.addListener(function (request, _, callback) {
case "unregisterContentScript": case "unregisterContentScript":
unregisterFirefoxContentScript(request.id) unregisterFirefoxContentScript(request.id)
return false; return false;
} case "tabs":
chrome.tabs.query({
active: true,
currentWindow: true
}, tabs => {
chrome.tabs.sendMessage(
tabs[0].id,
request.data,
(response) => callback(response)
);
}
);
return true;
}
}); });
//add help page on install //add help page on install

View File

@@ -22,13 +22,15 @@ class MessageHandler {
sendMessage(id: number, request: Message, callback?) { sendMessage(id: number, request: Message, callback?) {
if (this.messageListener) { if (this.messageListener) {
this.messageListener(request, null, callback); this.messageListener(request, null, callback);
} else { } else if (chrome.tabs) {
chrome.tabs.sendMessage(id, request, callback); chrome.tabs.sendMessage(id, request, callback);
} else {
chrome.runtime.sendMessage({ message: "tabs", data: request }, callback);
} }
} }
query(config, callback) { query(config, callback) {
if (this.messageListener) { if (this.messageListener || !chrome.tabs) {
// Send back dummy info // Send back dummy info
callback([{ callback([{
url: document.URL, url: document.URL,