When at-rest encryption is enabled, storage.local contains encrypted
blobs. The injector reads raw storage (content script world, no
access to IndexedDB CryptoKey) and sees { _ssLocalEncrypted: true }.
It passed empty config to content.js → no mappings → no substitution.
This is why Firefox stopped working after encryption was enabled.
Chrome/Brave worked because the user hadn't set up encryption there.
Fixed: injector now detects encrypted data and asks the background
script for decrypted config via 'get:decrypted-config' message.
The background uses the Storage module (which has IndexedDB access)
to decrypt and return the data. Falls back to empty config if the
vault is actually locked.
https://claude.ai/code/session_01SWSwDfMVij53bCTNSCLMwn
19 lines
573 B
JSON
19 lines
573 B
JSON
{
|
|
"name": "silent-send",
|
|
"version": "2.0.13",
|
|
"private": true,
|
|
"license": "BSL-1.1",
|
|
"description": "Browser extension that substitutes personal data before sending to AI services",
|
|
"scripts": {
|
|
"build:chrome": "./build.sh chrome",
|
|
"build:firefox": "./build.sh firefox",
|
|
"build": "./build.sh both",
|
|
"lint:firefox": "npx web-ext lint --source-dir dist/firefox",
|
|
"sign:firefox": "./sign-firefox.sh",
|
|
"run:firefox": "./build.sh firefox && npx web-ext run --source-dir dist/firefox"
|
|
},
|
|
"devDependencies": {
|
|
"web-ext": "^8.4.0"
|
|
}
|
|
}
|