diff --git a/src/platform/chrome/background.js b/src/platform/chrome/background.js new file mode 100644 index 0000000..740c807 --- /dev/null +++ b/src/platform/chrome/background.js @@ -0,0 +1,37 @@ +/* Enables the page action (i.e., the browser toolbar icon). + */ +chrome.runtime.onInstalled.addListener(() => { + chrome.declarativeContent.onPageChanged.removeRules(undefined, () => { + chrome.declarativeContent.onPageChanged.addRules([{ + conditions: [ new chrome.declarativeContent.PageStateMatcher({ + pageUrl: { schemes: [ 'http', 'https' ] }, + }) + ], actions: [ new chrome.declarativeContent.ShowPageAction() ] + }]); + }); +}); + +/* Toggle the toolbar icon based on whether stickies are, or are not, set to + be killed on the current tab. + + This listener receives a message from the content script (contentScript.js); + the content script actually determines what the settings for the current + tab are. + */ +chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { + let icons = request.killingStickies ? { + "16": "images/ASK_on_16.png", + "32": "images/ASK_on_32.png", + "48": "images/ASK_on_48.png", + "128": "images/ASK_on_128.png" + } : { + "16": "images/ASK_off_16.png", + "32": "images/ASK_off_32.png", + "48": "images/ASK_off_48.png", + "128": "images/ASK_off_128.png" + }; + chrome.pageAction.setIcon({ + path: icons, + tabId: request.tabID || sender.tab.id + }); +}); \ No newline at end of file diff --git a/src/images/ASK_off_128.png b/src/platform/chrome/images/ASK_off_128.png similarity index 100% rename from src/images/ASK_off_128.png rename to src/platform/chrome/images/ASK_off_128.png diff --git a/src/images/ASK_off_16.png b/src/platform/chrome/images/ASK_off_16.png similarity index 100% rename from src/images/ASK_off_16.png rename to src/platform/chrome/images/ASK_off_16.png diff --git a/src/images/ASK_off_32.png b/src/platform/chrome/images/ASK_off_32.png similarity index 100% rename from src/images/ASK_off_32.png rename to src/platform/chrome/images/ASK_off_32.png diff --git a/src/images/ASK_on_128.png b/src/platform/chrome/images/ASK_on_128.png similarity index 100% rename from src/images/ASK_on_128.png rename to src/platform/chrome/images/ASK_on_128.png diff --git a/src/images/ASK_on_16.png b/src/platform/chrome/images/ASK_on_16.png similarity index 100% rename from src/images/ASK_on_16.png rename to src/platform/chrome/images/ASK_on_16.png diff --git a/src/images/ASK_on_32.png b/src/platform/chrome/images/ASK_on_32.png similarity index 100% rename from src/images/ASK_on_32.png rename to src/platform/chrome/images/ASK_on_32.png diff --git a/src/platform/firefox/background.js b/src/platform/firefox/background.js new file mode 100644 index 0000000..2c41a03 --- /dev/null +++ b/src/platform/firefox/background.js @@ -0,0 +1,33 @@ +/* Enables the page action (i.e., the browser toolbar icon). + */ +chrome.runtime.onInstalled.addListener(() => { + chrome.declarativeContent.onPageChanged.removeRules(undefined, () => { + chrome.declarativeContent.onPageChanged.addRules([{ + conditions: [ new chrome.declarativeContent.PageStateMatcher({ + pageUrl: { schemes: [ 'http', 'https' ] }, + }) + ], actions: [ new chrome.declarativeContent.ShowPageAction() ] + }]); + }); +}); + +/* Toggle the toolbar icon based on whether stickies are, or are not, set to + be killed on the current tab. + + This listener receives a message from the content script (contentScript.js); + the content script actually determines what the settings for the current + tab are. + */ +chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { + let icons = request.killingStickies ? { + "48": "images/ASK_on_48.png", + "96": "images/ASK_on_96.png", + } : { + "48": "images/ASK_off_48.png", + "96": "images/ASK_off_96.png", + }; + chrome.pageAction.setIcon({ + path: icons, + tabId: request.tabID || sender.tab.id + }); +}); \ No newline at end of file diff --git a/src/platform/firefox/manifest.json b/src/platform/firefox/manifest.json index 72f98bd..6c2dd83 100644 --- a/src/platform/firefox/manifest.json +++ b/src/platform/firefox/manifest.json @@ -25,17 +25,13 @@ "default_popup": "popup.html", "default_title": "AlwaysKillSticky - Click the icon to control sticky-killing on this site!", "default_icon": { - "16": "images/ASK_on_16.png", - "32": "images/ASK_on_32.png", - "48": "images/ASK_on_48.png", - "128": "images/ASK_on_128.png" + "48": "images/ASK_on_48.png", + "96": "images/ASK_on_96.png", } }, "icons": { - "16": "images/ASK_on_16.png", - "32": "images/ASK_on_32.png", "48": "images/ASK_on_48.png", - "128": "images/ASK_on_128.png" + "96": "images/ASK_on_96.png", }, "options_ui": { "page": "options.html",