Merge pull request #69 from outis1one/clDemoe/review-silent-send-gHgCS
ClDemoe/review silent send g hg cs
This commit is contained in:
+33
-2
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"manifest_version": 3,
|
||||
"name": "Silent Send",
|
||||
"version": "0.9.39",
|
||||
"version": "0.9.40",
|
||||
"description": "Intercepts personal info and substitutes it with user-defined replacements before sending to AI services.",
|
||||
"browser_specific_settings": {
|
||||
"gecko": {
|
||||
@@ -25,6 +25,7 @@
|
||||
"https://chatgpt.com/*",
|
||||
"https://chat.openai.com/*",
|
||||
"https://copilot.microsoft.com/*",
|
||||
"https://grok.com/*",
|
||||
"https://grok.x.ai/*",
|
||||
"https://x.com/i/grok*",
|
||||
"https://gemini.google.com/*",
|
||||
@@ -53,6 +54,36 @@
|
||||
"https://chatgpt.com/*",
|
||||
"https://chat.openai.com/*",
|
||||
"https://copilot.microsoft.com/*",
|
||||
"https://grok.com/*",
|
||||
"https://grok.x.ai/*",
|
||||
"https://x.com/i/grok*",
|
||||
"https://gemini.google.com/*",
|
||||
"https://www.perplexity.ai/*",
|
||||
"https://copilot.microsoft.com/*",
|
||||
"https://chat.deepseek.com/*",
|
||||
"https://huggingface.co/chat/*",
|
||||
"https://poe.com/*",
|
||||
"https://github.com/*",
|
||||
"https://gitlab.com/*",
|
||||
"https://www.reddit.com/*",
|
||||
"https://old.reddit.com/*",
|
||||
"https://stackoverflow.com/*",
|
||||
"https://pastebin.com/*",
|
||||
"http://localhost/*",
|
||||
"http://127.0.0.1/*"
|
||||
],
|
||||
"js": ["src/content/early-hook.js"],
|
||||
"run_at": "document_start",
|
||||
"world": "MAIN",
|
||||
"all_frames": true
|
||||
},
|
||||
{
|
||||
"matches": [
|
||||
"https://claude.ai/*",
|
||||
"https://chatgpt.com/*",
|
||||
"https://chat.openai.com/*",
|
||||
"https://copilot.microsoft.com/*",
|
||||
"https://grok.com/*",
|
||||
"https://grok.x.ai/*",
|
||||
"https://x.com/i/grok*",
|
||||
"https://gemini.google.com/*",
|
||||
@@ -114,7 +145,7 @@
|
||||
],
|
||||
"web_accessible_resources": [
|
||||
{
|
||||
"resources": ["src/content/content.js", "src/content/early-hook.js", "src/lib/document-scanner.js"],
|
||||
"resources": ["src/content/content.js", "src/lib/document-scanner.js"],
|
||||
"matches": ["<all_urls>"]
|
||||
}
|
||||
]
|
||||
|
||||
+33
-2
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"manifest_version": 3,
|
||||
"name": "Silent Send",
|
||||
"version": "0.9.39",
|
||||
"version": "0.9.40",
|
||||
"description": "Intercepts personal info and substitutes it with user-defined replacements before sending to AI services.",
|
||||
"permissions": [
|
||||
"storage",
|
||||
@@ -15,6 +15,7 @@
|
||||
"https://chatgpt.com/*",
|
||||
"https://chat.openai.com/*",
|
||||
"https://copilot.microsoft.com/*",
|
||||
"https://grok.com/*",
|
||||
"https://grok.x.ai/*",
|
||||
"https://x.com/i/grok*",
|
||||
"https://gemini.google.com/*",
|
||||
@@ -43,6 +44,36 @@
|
||||
"https://chatgpt.com/*",
|
||||
"https://chat.openai.com/*",
|
||||
"https://copilot.microsoft.com/*",
|
||||
"https://grok.com/*",
|
||||
"https://grok.x.ai/*",
|
||||
"https://x.com/i/grok*",
|
||||
"https://gemini.google.com/*",
|
||||
"https://www.perplexity.ai/*",
|
||||
"https://copilot.microsoft.com/*",
|
||||
"https://chat.deepseek.com/*",
|
||||
"https://huggingface.co/chat/*",
|
||||
"https://poe.com/*",
|
||||
"https://github.com/*",
|
||||
"https://gitlab.com/*",
|
||||
"https://www.reddit.com/*",
|
||||
"https://old.reddit.com/*",
|
||||
"https://stackoverflow.com/*",
|
||||
"https://pastebin.com/*",
|
||||
"http://localhost/*",
|
||||
"http://127.0.0.1/*"
|
||||
],
|
||||
"js": ["src/content/early-hook.js"],
|
||||
"run_at": "document_start",
|
||||
"world": "MAIN",
|
||||
"all_frames": true
|
||||
},
|
||||
{
|
||||
"matches": [
|
||||
"https://claude.ai/*",
|
||||
"https://chatgpt.com/*",
|
||||
"https://chat.openai.com/*",
|
||||
"https://copilot.microsoft.com/*",
|
||||
"https://grok.com/*",
|
||||
"https://grok.x.ai/*",
|
||||
"https://x.com/i/grok*",
|
||||
"https://gemini.google.com/*",
|
||||
@@ -102,7 +133,7 @@
|
||||
],
|
||||
"web_accessible_resources": [
|
||||
{
|
||||
"resources": ["src/content/content.js", "src/content/early-hook.js", "src/lib/document-scanner.js"],
|
||||
"resources": ["src/content/content.js", "src/lib/document-scanner.js"],
|
||||
"matches": ["<all_urls>"]
|
||||
}
|
||||
]
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "silent-send",
|
||||
"version": "0.9.39",
|
||||
"version": "0.9.40",
|
||||
"private": true,
|
||||
"license": "MIT",
|
||||
"description": "Browser extension that substitutes personal data before sending to AI services",
|
||||
|
||||
+14
-2
@@ -789,7 +789,9 @@
|
||||
// Fetch Interception — scans ALL POST requests with a body.
|
||||
// Service-agnostic: doesn't depend on URL patterns.
|
||||
// ============================================================
|
||||
const originalFetch = window.fetch;
|
||||
// Use the real fetch captured by early-hook.js (before React stored its reference),
|
||||
// or fall back to whatever window.fetch is now if early-hook.js didn't run.
|
||||
const originalFetch = window.__ssOriginalFetch || window.fetch;
|
||||
|
||||
// URLs to never touch (static assets, analytics, etc.)
|
||||
const SKIP_URL_PATTERNS = [
|
||||
@@ -805,7 +807,7 @@
|
||||
return SKIP_URL_PATTERNS.some(p => p.test(url));
|
||||
}
|
||||
|
||||
window.fetch = async function (url, options) {
|
||||
window.__ssInterceptFetch = async function (url, options) {
|
||||
if (!settings.enabled || !hasSubstitutions()) {
|
||||
return originalFetch.call(this, url, options);
|
||||
}
|
||||
@@ -869,6 +871,16 @@
|
||||
return originalFetch.call(this, url, options);
|
||||
};
|
||||
|
||||
// Activate the fetch hook. If early-hook.js ran first (world: MAIN, document_start),
|
||||
// it already replaced window.fetch with a wrapper that forwards to __ssInterceptFetch
|
||||
// once __ssReady is true — this catches React/Next.js fetch references stored before
|
||||
// content.js loaded. Otherwise fall back to replacing window.fetch directly.
|
||||
if (window.__ssOriginalFetch) {
|
||||
window.__ssReady = true;
|
||||
} else {
|
||||
window.fetch = window.__ssInterceptFetch;
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// XMLHttpRequest Interception — same aggressive approach
|
||||
// ============================================================
|
||||
|
||||
Reference in New Issue
Block a user