summaryrefslogtreecommitdiff
path: root/browsers/firefox/extension/background.js
diff options
context:
space:
mode:
authorauric <104602845+ihateamongus@users.noreply.github.com>2025-09-11 15:14:27 -0500
committerGitHub <noreply@github.com>2025-09-11 15:14:27 -0500
commit8245aa3b9fbd8a2bf271133f9fbdc2ca45b221c9 (patch)
tree0ab78ec4155721ae8571fdcac435c9b84e232ca9 /browsers/firefox/extension/background.js
parent2d10fcf6bb85732819385f20a9bc13c50036c0f7 (diff)
parent6207d8a75e40aa76008edaffbbe138bbc9f6baa4 (diff)
Merge pull request #33 from ihateamongus/codex/explore-dynamic-accent-color-support
Add dynamic browser accent color experiment
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});
+ }
+});