Files
silent-send/manifest.firefox.json
T
Claude c42a4aa55e revert: remove early fetch hook, restore simple injection — v2.0.12
The early hook approach (inline script, then external early-hook.js)
kept breaking Firefox due to CSP restrictions and timing issues with
the async external script load. Each fix for ChatGPT introduced a
new regression for Firefox/Brave.

Reverted to the original simple approach:
- Injector reads storage, injects content.js via <script src="...">
- content.js captures window.fetch at load time and patches it
- No inline scripts, no early hooks, no __ssOriginalFetch globals

This is what worked on Claude.ai across all browsers before the
ChatGPT fix attempts. ChatGPT support may need a different approach
later (possibly using declarativeNetRequest for header-only changes,
or a ChatGPT-specific content script), but it should not break the
core functionality on Claude.ai.

Kept the Request object handling in the fetch interceptor (needed for
some frameworks) but removed all early hook dependencies.

https://claude.ai/code/session_01SWSwDfMVij53bCTNSCLMwn
2026-03-27 16:42:09 +00:00

94 lines
2.2 KiB
JSON

{
"manifest_version": 3,
"name": "Silent Send",
"version": "2.0.12",
"description": "Intercepts personal info and substitutes it with user-defined replacements before sending to AI services.",
"browser_specific_settings": {
"gecko": {
"id": "silent-send@example.com",
"strict_min_version": "128.0"
}
},
"permissions": [
"storage",
"activeTab",
"scripting",
"notifications",
"alarms"
],
"host_permissions": [
"https://claude.ai/*",
"https://chatgpt.com/*",
"https://chat.openai.com/*",
"https://grok.x.ai/*",
"https://x.com/i/grok*",
"https://gemini.google.com/*",
"http://localhost/*",
"http://127.0.0.1/*"
],
"background": {
"scripts": ["src/background/service-worker.js"],
"type": "module"
},
"content_scripts": [
{
"matches": [
"https://claude.ai/*",
"https://chatgpt.com/*",
"https://chat.openai.com/*",
"https://grok.x.ai/*",
"https://x.com/i/grok*",
"https://gemini.google.com/*",
"http://localhost/*",
"http://127.0.0.1/*"
],
"js": ["src/content/injector.js"],
"css": ["src/content/content.css"],
"run_at": "document_start",
"all_frames": true
}
],
"action": {
"default_popup": "src/popup/popup.html",
"default_icon": {
"16": "icons/icon16.svg",
"48": "icons/icon48.svg",
"128": "icons/icon128.svg"
}
},
"options_ui": {
"page": "src/options/options.html",
"open_in_tab": true
},
"icons": {
"16": "icons/icon16.svg",
"48": "icons/icon48.svg",
"128": "icons/icon128.svg"
},
"commands": {
"toggle-reveal": {
"suggested_key": {
"default": "Alt+Shift+R",
"mac": "Alt+Shift+R"
},
"description": "Toggle Reveal Mode"
},
"toggle-enabled": {
"suggested_key": {
"default": "Alt+Shift+S",
"mac": "Alt+Shift+S"
},
"description": "Toggle Silent Send on/off"
}
},
"optional_permissions": [
"<all_urls>"
],
"web_accessible_resources": [
{
"resources": ["src/content/content.js", "src/content/early-hook.js"],
"matches": ["<all_urls>"]
}
]
}