diff options
Diffstat (limited to 'modules/web/chromium')
| -rw-r--r-- | modules/web/chromium/extensions/aria2-explorer.nix | 10 | ||||
| -rw-r--r-- | modules/web/chromium/extensions/browserpass.nix | 12 | ||||
| -rw-r--r-- | modules/web/chromium/extensions/dark-mode.nix | 3 | ||||
| -rw-r--r-- | modules/web/chromium/extensions/lib.nix | 19 | ||||
| -rw-r--r-- | modules/web/chromium/extensions/searxng-home.nix | 3 | ||||
| -rw-r--r-- | modules/web/chromium/extensions/ublock-origin.nix | 3 |
6 files changed, 30 insertions, 20 deletions
diff --git a/modules/web/chromium/extensions/aria2-explorer.nix b/modules/web/chromium/extensions/aria2-explorer.nix index 0ee9779..694d74e 100644 --- a/modules/web/chromium/extensions/aria2-explorer.nix +++ b/modules/web/chromium/extensions/aria2-explorer.nix @@ -15,18 +15,18 @@ let version ; tagPrefix = "v"; - urlTemplate = "https://github.com/${owner}/${repo}/releases/download/v<version>/A2E-v<version>.crx"; + urlTemplate = "https://github.com/${owner}/${repo}/archive/refs/tags/v<version>.zip"; }; in { inherit pname; version = checkedVersion; - id = "jnnfdabjmnliapnhdbnljjlfamdkeohn"; + id = "hhndckjijagcbbljjhjcbnpjhamkkcjl"; drv = extLib.fetchUnpackedExtension { inherit pname; version = checkedVersion; - url = "https://github.com/${owner}/${repo}/releases/download/v${checkedVersion}/A2E-v${checkedVersion}.crx"; - hash = "sha256-ljTgKd9QJTRJ11rlNx+PTynlQvdLW3IEoYNnCeOU2K8="; - isCrx = true; + url = "https://github.com/${owner}/${repo}/archive/refs/tags/v${checkedVersion}.zip"; + hash = "sha256-4+SkvgWrELcohpv724YEtvSQSDCmjphkk8bvYggxVag="; + extensionKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArOOLc1LawtEonls6j4P/KQyUAGO3KJcE9uAU9WV/tBIX6ulXivZypUAXC6Lokv56Bjnc08t/wUH8Xph0Gya4UzjSbZkdtR94yksY9mq5g/8df4p4v29SO+E6efQyXGyImEzFSHsNP4gu8akB5xT8O//51XRAXsMBVgUUTuUAlpnwd25Yy1tpQwqjbSV3gvAMo+a6+y0dBfXJ9fjwAYBwvx4cONSNjirIuyOG5r5FI5TaGMK+aV1xwNsDE59dyDkYL2f2mm1kN/2xMcayJrskVxtOcy18ijjXzyRJvNyhkLM2c5tEZHUkIlEgTjbJruF8EKrj2sCnodt1jknD0BSr1wIDAQAB"; }; } diff --git a/modules/web/chromium/extensions/browserpass.nix b/modules/web/chromium/extensions/browserpass.nix index 211b6f1..88ed7f4 100644 --- a/modules/web/chromium/extensions/browserpass.nix +++ b/modules/web/chromium/extensions/browserpass.nix @@ -15,20 +15,18 @@ let version ; tagPrefix = ""; - urlTemplate = "https://github.com/${owner}/${repo}/releases/download/<version>/browserpass-webstore-<version>.crx"; + urlTemplate = "https://github.com/${owner}/${repo}/releases/download/<version>/browserpass-chromium-<version>.zip"; }; in { inherit pname; version = checkedVersion; - # Stable webstore ID — only holds if the crx's manifest.json embeds "key". - # Verify at chrome://extensions after switching; update if it drifts. - id = "klfoddkbhleoaabpmiigbmpbjfljimgb"; + id = "jbaodoonnfhdccelcpnekimkijgdfjhl"; drv = extLib.fetchUnpackedExtension { inherit pname; version = checkedVersion; - url = "https://github.com/${owner}/${repo}/releases/download/${checkedVersion}/browserpass-webstore-${checkedVersion}.crx"; - hash = "sha256-NfLbEe2EBctmntJqbsIpwm2WRFdo8q6yjWGjVK2MmFE="; - isCrx = true; + url = "https://github.com/${owner}/${repo}/releases/download/${checkedVersion}/browserpass-chromium-${checkedVersion}.zip"; + hash = "sha256-WBpPTtec7zJPWM1xNKVxWWW/sB1aIuPecp5fUTWRE8c="; + extensionKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv8xL6YhF7YTUE57jhme0vyJi4FZGXDBLV93QYWv6yrYbmczkM4aEOp4FWm63NnkJ8aGZ/0uL0rHmB4qo36awso/1L9XGJaBbQAQuOv/uIPAE18STJ4EtXA1hYDMGbkkr4fZHYJTH3GmoeajZYfp/cu8qc0cK4P5FVq67qwYSD4uFQJRJKuX8jM4lzO8dLH/tJsN3KwlfeSA8xvS2jiIJHtCKc6XqMrOCCfSmI8uILfg06fv46VOoVDH91dlZguOYANAJDW69uCY9YcvyVEmmf6DUnvmkrziDtV2O4/Af6nt7R5JHOcVcqVScoXJG9sfd4KATMcgoZj3fy19+R/4GvwIDAQAB"; }; } diff --git a/modules/web/chromium/extensions/dark-mode.nix b/modules/web/chromium/extensions/dark-mode.nix index 0a84ae8..efd8cbb 100644 --- a/modules/web/chromium/extensions/dark-mode.nix +++ b/modules/web/chromium/extensions/dark-mode.nix @@ -21,11 +21,12 @@ in { inherit pname; version = checkedVersion; - id = "mnollmcmkninmddnibfgoncobcehfhef"; + id = "nfkppknaehpcafkbgmhfhkpapflndfip"; drv = extLib.fetchUnpackedExtension { inherit pname; version = checkedVersion; url = "https://github.com/${owner}/${repo}/archive/refs/tags/v${checkedVersion}.zip"; hash = "sha256-Lt3T8i0ylV0l+T0eqnzs6veBcOpizhP79LgSkUx4xI8="; + extensionKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8xN0p4CHkthdkB6imIb+8T2xsNSH9eeFAy7NhP3xAO1ML6FJyOFroabQIG6HcV7miXmJamY7zmE96QgEEvGqQ18+g+RsfvriJp0LRXi95TJBdCXoMiW348bWmue0Jk+/rhzWijMn/z/5fDnrZl0xjKU7MAXzW9dWfiTeIBc4wlk21zjGJxiG0uM1YAywe3jW8g0QCBga9iTaN67D+sBbBs4HmPa3xIbtPTAgqt1LDEk2T7IseoUia8MwxATWKWFegW6legMkPLVWH9jQ+x2ZbjtDP9GXk+1YqqWQUll1Xmal7C9ljeagkM5nhxgttAQoWBMPMJFwr7VN3AXtNXXPWQIDAQAB"; }; } diff --git a/modules/web/chromium/extensions/lib.nix b/modules/web/chromium/extensions/lib.nix index 8821b03..d319a5c 100644 --- a/modules/web/chromium/extensions/lib.nix +++ b/modules/web/chromium/extensions/lib.nix @@ -73,6 +73,7 @@ rec { url, hash, isCrx ? false, + extensionKey ? null, # NEW: Accept an optional public key }: pkgs.stdenv.mkDerivation { inherit pname version; @@ -80,6 +81,7 @@ rec { nativeBuildInputs = [ config.file-management.ouch.package + pkgs.jq # NEW: Required for safely editing manifest.json ]; dontUnpack = true; @@ -96,10 +98,7 @@ rec { fi # Extract header length (bytes 8-11, little-endian) - # -An (no address), -j8 (skip 8 bytes), -N4 (read 4 bytes), -tu1 (unsigned decimal 1-byte) bytes=$(od -An -j8 -N4 -tu1 "$src") - - # Read into individual variables and calculate the length read b1 b2 b3 b4 <<< $bytes hlen=$(( b1 + (b2 << 8) + (b3 << 16) + (b4 << 24) )) offset=$(( 12 + hlen )) @@ -118,13 +117,23 @@ rec { shopt -u dotglob fi + # NEW: Inject the public key into manifest.json if provided + ${lib.optionalString (extensionKey != null) '' + if [ -f "$out/manifest.json" ]; then + echo "Injecting extension key into manifest.json to lock the extension ID..." + jq '.key = "${extensionKey}"' "$out/manifest.json" > "$out/manifest.tmp.json" + mv "$out/manifest.tmp.json" "$out/manifest.json" + else + echo "Warning: No manifest.json found in $out to inject the key!" >&2 + fi + ''} + runHook postBuild ''; installPhase = "true"; - }; + }; # --- Package a local directory as an unpacked extension derivation. --- - # --- Package a local directory as an unpacked extension derivation. --- mkLocalExtension = { pname, diff --git a/modules/web/chromium/extensions/searxng-home.nix b/modules/web/chromium/extensions/searxng-home.nix index 73cc7fd..fcac55d 100644 --- a/modules/web/chromium/extensions/searxng-home.nix +++ b/modules/web/chromium/extensions/searxng-home.nix @@ -24,7 +24,7 @@ in inherit pname; version = checkedVersion; - id = "acoijbpbnodehiibdpmkkhlpmcnabpaa"; + id = "gmkjafoflhifgcnmpomcoakhahmepfkc"; drv = extLib.fetchUnpackedExtension { inherit pname; @@ -32,5 +32,6 @@ in url = "https://github.com/${owner}/${repo}/releases/download/v${checkedVersion}/chrome-v${checkedVersion}.zip"; hash = "sha256-fbXxtjTa8GKxylc5JS3GVj/oC+xCI5VJkE3bBpA2CbY="; isCrx = false; + extensionKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2cDXvyOi1QgsWlC8LnwyXIV7EZ6yWLKvKCNBn8DPD4DwJgw221wqo6R9p/qnsnqAuveZrV/ApRq6MdzAclkWTGKyCJCRdJGBG/XM3BVfMBkuLXaLrvpFf8p/mDcAP37yOh0Z45XMTr55Y9ifnNH6Wu+3zAaASJlkBuGZ5ygbcUYcomcKjs7qfqxqY8Qe9ovIuLOQely+X9i+Qa6bZ0GJUTgXiKHckgY/43l+H+gs9V91he8qaSubzWPqwbYk8aWhTmjQTeR0vfUP+1/XBESt4u4NGxHsuk+ZwwbL6ThYRbzgj/UbvVGVQsanhIwODdJte51XanEo475Woal31++uxwIDAQAB"; }; } diff --git a/modules/web/chromium/extensions/ublock-origin.nix b/modules/web/chromium/extensions/ublock-origin.nix index a46d5b7..5bc88df 100644 --- a/modules/web/chromium/extensions/ublock-origin.nix +++ b/modules/web/chromium/extensions/ublock-origin.nix @@ -21,11 +21,12 @@ in { inherit pname; version = checkedVersion; - id = "ojmlhihnkagpnkkkjngdngbiidmafdbm"; + id = "eahmphincfcmmpgkpobpneimcjndlcna"; drv = extLib.fetchUnpackedExtension { inherit pname; version = checkedVersion; url = "https://github.com/${owner}/${repo}/releases/download/${checkedVersion}/uBlock0_${checkedVersion}.chromium.zip"; hash = "sha256-0QTKxOH0jXaxw/+Irt4uqoJpgUrgbMnIUNJ6+1J05TM="; + extensionKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtXfkoFzWOh3Fet9x4L6WY1pw755kt7bFwqd/nmTm5Ptg7d40Qde0tTIhceCFVkwrWTQ3n2/WSpYXoU/UMgSW9anBzoUM0ZXanIdoeHwvL3eMNyx+iyvSrRxee26GwzbZ8J0UvH77KT3rW/iV5ejV4wTxTD3rFr0udkI5bbTPYpmGFOKPD8I3IB6BsoUTKW3XTSLM0fUYggdbDNwQGZvLYwqZzk/vWH/oifHR6CEvdFR51JAdf3tJQhttI6My49Vq6etCi9y5ZLXrMksxcEcIlQKaF2fdlfL1bYXRAVFDsieuAmu3gJPBj65PVJif5A7DfcH8zm8YGPwrJlTjaJQeDQIDAQAB"; }; } |
