From 96173dd901bf95bfdf5e55d76c8f1e23cab8c6f3 Mon Sep 17 00:00:00 2001 From: Ajay Date: Thu, 2 Jun 2022 18:47:03 -0400 Subject: [PATCH] Fix popup communication on Firefox --- src/background.ts | 15 ++++++++++++++- src/popup.ts | 6 ++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/background.ts b/src/background.ts index d576fba1..aa94df5e 100644 --- a/src/background.ts +++ b/src/background.ts @@ -84,7 +84,20 @@ chrome.runtime.onMessage.addListener(function (request, _, callback) { case "unregisterContentScript": unregisterFirefoxContentScript(request.id) 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 diff --git a/src/popup.ts b/src/popup.ts index b1bd8071..34a9d69f 100644 --- a/src/popup.ts +++ b/src/popup.ts @@ -22,13 +22,15 @@ class MessageHandler { sendMessage(id: number, request: Message, callback?) { if (this.messageListener) { this.messageListener(request, null, callback); - } else { + } else if (chrome.tabs) { chrome.tabs.sendMessage(id, request, callback); + } else { + chrome.runtime.sendMessage({ message: "tabs", data: request }, callback); } } query(config, callback) { - if (this.messageListener) { + if (this.messageListener || !chrome.tabs) { // Send back dummy info callback([{ url: document.URL,