summaryrefslogtreecommitdiff
path: root/browsers/firefox/extension/background.js
diff options
context:
space:
mode:
Diffstat (limited to 'browsers/firefox/extension/background.js')
-rw-r--r--browsers/firefox/extension/background.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/browsers/firefox/extension/background.js b/browsers/firefox/extension/background.js
new file mode 100644
index 0000000..df0ee80
--- /dev/null
+++ b/browsers/firefox/extension/background.js
@@ -0,0 +1,34 @@
+let port = browser.runtime.connectNative("accent_color");
+let current = null;
+
+function broadcast(color) {
+ browser.tabs.query({}).then(tabs => {
+ for (let tab of tabs) {
+ browser.tabs.sendMessage(tab.id, {color}).catch(() => {});
+ }
+ });
+ browser.theme.update({colors: {toolbar: color}});
+}
+
+port.onMessage.addListener(msg => {
+ if (msg.color && msg.color !== current) {
+ current = msg.color;
+ broadcast(current);
+ }
+});
+
+function poll() {
+ try {
+ port.postMessage({query: "color"});
+ } catch (e) {
+ // ignore
+ }
+}
+setInterval(poll, 1000);
+poll();
+
+browser.runtime.onMessage.addListener((msg, sender) => {
+ if (msg.request === "color") {
+ return Promise.resolve({color: current});
+ }
+});