diff --git a/CHANGELOG.md b/CHANGELOG.md
index f77d7a1..87fb48b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,18 @@
# Change Log
+## [1.0.2] - 2025-02-12
+
+### Added
+
+- Extension icon now reflects whether Privacy Pass is in use or not.
+
+### Changed
+
+- Extension icon.
+
+### Fixed
+
## [1.0.1] - 2025-02-11
### Added
diff --git a/src/background.js b/src/background.js
index 75e1765..905ce8c 100644
--- a/src/background.js
+++ b/src/background.js
@@ -3,6 +3,10 @@ import {
time
} from './popup/utils.js'
+import {
+ update_extension_icon
+} from './scripts/icon.js'
+
import {
DOMAIN_PORT,
ONION_DOMAIN_PORT,
diff --git a/src/chrome_manifest.json b/src/chrome_manifest.json
index 6ada1a8..05ae989 100644
--- a/src/chrome_manifest.json
+++ b/src/chrome_manifest.json
@@ -2,23 +2,19 @@
"manifest_version": 3,
"name": "Kagi Privacy Pass",
"description": "Enables use of Privacy Pass to authenticate Kagi search.",
- "version": "1.0.1",
+ "version": "1.0.2",
"action": {
"default_popup": "popup/popup.html",
- "default_icon": "images/icon-64.png"
+ "default_icon": "images/icons/disabled/icon-64.png"
},
"content_security_policy": {
"extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self';"
},
"icons": {
- "16": "images/icon-16.png",
- "32": "images/icon-32.png",
- "48": "images/icon-48.png",
- "64": "images/icon-64.png",
- "96": "images/icon-96.png",
- "128": "images/icon-128.png",
- "256": "images/icon-256.png",
- "512": "images/icon-512.png"
+ "16": "images/icons/enabled/icon-16.png",
+ "32": "images/icons/enabled/icon-32.png",
+ "64": "images/icons/enabled/icon-64.png",
+ "128": "images/icons/enabled/icon-128.png"
},
"permissions": [
"declarativeNetRequestWithHostAccess",
diff --git a/src/firefox_manifest.json b/src/firefox_manifest.json
index 3212108..abc6c6b 100644
--- a/src/firefox_manifest.json
+++ b/src/firefox_manifest.json
@@ -2,23 +2,19 @@
"manifest_version": 3,
"name": "Kagi Privacy Pass",
"description": "Enables use of Privacy Pass to authenticate Kagi search.",
- "version": "1.0.1",
+ "version": "1.0.2",
"action": {
"default_popup": "popup/popup.html",
- "default_icon": "images/icon-32.png"
+ "default_icon": "images/icons/disabled/icon-64.png"
},
"content_security_policy": {
"extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self';"
},
"icons": {
- "16": "images/icon-16.png",
- "32": "images/icon-32.png",
- "48": "images/icon-48.png",
- "64": "images/icon-64.png",
- "96": "images/icon-96.png",
- "128": "images/icon-128.png",
- "256": "images/icon-256.png",
- "512": "images/icon-512.png"
+ "16": "images/icons/enabled/icon-16.png",
+ "32": "images/icons/enabled/icon-32.png",
+ "64": "images/icons/enabled/icon-64.png",
+ "128": "images/icons/enabled/icon-128.png"
},
"permissions": [
"declarativeNetRequestWithHostAccess",
diff --git a/src/images/16x16.svg b/src/images/16x16.svg
deleted file mode 100644
index 073b41e..0000000
--- a/src/images/16x16.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/images/32x32.svg b/src/images/32x32.svg
deleted file mode 100644
index 6e54eb8..0000000
--- a/src/images/32x32.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/images/icon-128.png b/src/images/icon-128.png
deleted file mode 100644
index 1008739..0000000
Binary files a/src/images/icon-128.png and /dev/null differ
diff --git a/src/images/icon-16.png b/src/images/icon-16.png
deleted file mode 100644
index 3939102..0000000
Binary files a/src/images/icon-16.png and /dev/null differ
diff --git a/src/images/icon-256.png b/src/images/icon-256.png
deleted file mode 100644
index 3813405..0000000
Binary files a/src/images/icon-256.png and /dev/null differ
diff --git a/src/images/icon-32.png b/src/images/icon-32.png
deleted file mode 100644
index 46aecab..0000000
Binary files a/src/images/icon-32.png and /dev/null differ
diff --git a/src/images/icon-48.png b/src/images/icon-48.png
deleted file mode 100644
index 83113b5..0000000
Binary files a/src/images/icon-48.png and /dev/null differ
diff --git a/src/images/icon-512.png b/src/images/icon-512.png
deleted file mode 100644
index 62e46ca..0000000
Binary files a/src/images/icon-512.png and /dev/null differ
diff --git a/src/images/icon-64.png b/src/images/icon-64.png
deleted file mode 100644
index 39742c2..0000000
Binary files a/src/images/icon-64.png and /dev/null differ
diff --git a/src/images/icon-96.png b/src/images/icon-96.png
deleted file mode 100644
index 81814b3..0000000
Binary files a/src/images/icon-96.png and /dev/null differ
diff --git a/src/images/icons/disabled/icon-128.png b/src/images/icons/disabled/icon-128.png
new file mode 100644
index 0000000..6678b21
Binary files /dev/null and b/src/images/icons/disabled/icon-128.png differ
diff --git a/src/images/icons/disabled/icon-16.png b/src/images/icons/disabled/icon-16.png
new file mode 100644
index 0000000..b0e280d
Binary files /dev/null and b/src/images/icons/disabled/icon-16.png differ
diff --git a/src/images/icons/disabled/icon-32.png b/src/images/icons/disabled/icon-32.png
new file mode 100644
index 0000000..87c3ac8
Binary files /dev/null and b/src/images/icons/disabled/icon-32.png differ
diff --git a/src/images/icons/disabled/icon-64.png b/src/images/icons/disabled/icon-64.png
new file mode 100644
index 0000000..1dffb30
Binary files /dev/null and b/src/images/icons/disabled/icon-64.png differ
diff --git a/src/images/icons/disabled/icon.svg b/src/images/icons/disabled/icon.svg
new file mode 100644
index 0000000..234d712
--- /dev/null
+++ b/src/images/icons/disabled/icon.svg
@@ -0,0 +1,12 @@
+
+
+
diff --git a/src/images/icons/enabled/icon-128.png b/src/images/icons/enabled/icon-128.png
new file mode 100644
index 0000000..f24afe8
Binary files /dev/null and b/src/images/icons/enabled/icon-128.png differ
diff --git a/src/images/icons/enabled/icon-16.png b/src/images/icons/enabled/icon-16.png
new file mode 100644
index 0000000..3aaddb9
Binary files /dev/null and b/src/images/icons/enabled/icon-16.png differ
diff --git a/src/images/icons/enabled/icon-32.png b/src/images/icons/enabled/icon-32.png
new file mode 100644
index 0000000..41a881b
Binary files /dev/null and b/src/images/icons/enabled/icon-32.png differ
diff --git a/src/images/icons/enabled/icon-64.png b/src/images/icons/enabled/icon-64.png
new file mode 100644
index 0000000..63b46d1
Binary files /dev/null and b/src/images/icons/enabled/icon-64.png differ
diff --git a/src/images/icons/enabled/icon.svg b/src/images/icons/enabled/icon.svg
new file mode 100644
index 0000000..0f3e567
--- /dev/null
+++ b/src/images/icons/enabled/icon.svg
@@ -0,0 +1,12 @@
+
+
+
diff --git a/src/popup/clear.js b/src/popup/clear.js
index 9e440c0..aa51b76 100644
--- a/src/popup/clear.js
+++ b/src/popup/clear.js
@@ -2,6 +2,10 @@ import {
range
} from '../scripts/headers.js'
+import {
+ update_extension_icon
+} from '../scripts/icon.js'
+
async function clearState() {
// clear local storage (includes status, tokens, kagi_session, etc)
await browser.storage.local.clear();
@@ -10,6 +14,7 @@ async function clearState() {
addRules: [],
removeRuleIds: range(999)
});
+ await update_extension_icon(false);
}
export {
diff --git a/src/popup/enable_toggle.js b/src/popup/enable_toggle.js
index 1dd4b32..363816a 100644
--- a/src/popup/enable_toggle.js
+++ b/src/popup/enable_toggle.js
@@ -1,11 +1,18 @@
+import {
+ update_extension_icon
+} from '../scripts/icon.js'
+
const enabled_checkbox = document.querySelector("#kagipp-enabled")
const status_message_indicator = document.querySelector("#status-message-indicator")
-async function update_indicator_opacity() {
+async function update_indicator_opacity(enabled) {
if (!status_message_indicator) {
return;
}
- const { enabled } = await browser.storage.local.get({ 'enabled': false })
+ if (typeof enabled === "undefined") {
+ const { _enabled } = await browser.storage.local.get({ 'enabled': false })
+ enabled = _enabled;
+ }
if (enabled) {
status_message_indicator.style.opacity = 1;
} else {
@@ -19,7 +26,7 @@ async function is_enabled() {
}
const { enabled } = await browser.storage.local.get({ 'enabled': false })
enabled_checkbox.checked = enabled;
- await update_indicator_opacity();
+ await update_indicator_opacity(enabled);
}
async function set_enabled() {
@@ -30,7 +37,7 @@ async function set_enabled() {
const enabled = enabled_checkbox.checked;
await browser.storage.local.set({ 'enabled': enabled })
browser.runtime.sendMessage('enabled_changed')
- await update_indicator_opacity();
+ await update_indicator_opacity(enabled);
}
export {
diff --git a/src/scripts/icon.js b/src/scripts/icon.js
new file mode 100644
index 0000000..ee62608
--- /dev/null
+++ b/src/scripts/icon.js
@@ -0,0 +1,19 @@
+async function update_extension_icon(enabled) {
+ if (typeof enabled === "undefined") {
+ const { _enabled } = await browser.storage.local.get({ 'enabled': false })
+ enabled = _enabled;
+ }
+ const path = enabled ? "enabled" : "disabled";
+ await chrome.action.setIcon({
+ path: {
+ 16: `../images/icons/${path}/icon-16.png`,
+ 32: `../images/icons/${path}/icon-32.png`,
+ 64: `../images/icons/${path}/icon-64.png`,
+ 128: `../images/icons/${path}/icon-128.png`
+ }
+ });
+}
+
+export {
+ update_extension_icon
+}
\ No newline at end of file
diff --git a/src/scripts/toggle.js b/src/scripts/toggle.js
index 164cfd6..f8c1ee1 100644
--- a/src/scripts/toggle.js
+++ b/src/scripts/toggle.js
@@ -15,6 +15,10 @@ import {
selfRemovingUnsetRefererHeadersListener
} from './headers.js'
+import {
+ update_extension_icon
+} from './icon.js'
+
import {
VERBOSE,
REDEMPTION_ENDPOINTS,
@@ -67,6 +71,7 @@ async function setEnabled() {
} catch (ex) {
await logError(`${ex}`);
await browser.storage.local.set({ 'enabled': false })
+ await update_extension_icon(false);
await sendPPModeStatus();
return;
}
@@ -93,6 +98,7 @@ async function setEnabled() {
},
[]
)
+ await update_extension_icon(true);
}
async function setDisabled() {
@@ -112,6 +118,7 @@ async function setDisabled() {
{ urls: [""] },
["responseHeaders"]
)
+ await update_extension_icon(false);
}
export {