diff options
Diffstat (limited to 'apps')
| -rw-r--r-- | apps/extension/manifest.json | 10 | ||||
| -rw-r--r-- | apps/extension/src/background.ts | 1 | ||||
| -rw-r--r-- | apps/extension/src/firefox/content.ts | 9 | ||||
| -rw-r--r-- | apps/extension/src/twitter.ts | 22 | ||||
| -rw-r--r-- | apps/web/app/config/integrations.tsx | 1 | ||||
| -rw-r--r-- | apps/web/package.json | 1 |
6 files changed, 32 insertions, 12 deletions
diff --git a/apps/extension/manifest.json b/apps/extension/manifest.json index c938209a..58d9f759 100644 --- a/apps/extension/manifest.json +++ b/apps/extension/manifest.json @@ -31,6 +31,16 @@ "http://supermemory.com/*" ] }, + "firefox:content_scripts": [{ + "matches": [ + "http://localhost:3000/*", + "https://supermemory.ai/*", + "https://beta.supermemory.ai/*", + "http://supermemory.com/*" + ], + "js": ["src/firefox/content.ts"] + } + ], "icons": { "16": "images/icon/16.png", "32": "images/icon/32.png", diff --git a/apps/extension/src/background.ts b/apps/extension/src/background.ts index b02d027f..74bb0f09 100644 --- a/apps/extension/src/background.ts +++ b/apps/extension/src/background.ts @@ -154,7 +154,6 @@ registerMessageHandler<MessageType>( target: { tabId: currentTab.id }, files: ["scripts/content.js"], }); - } catch (error) { console.error("Error injecting content script:", error); } diff --git a/apps/extension/src/firefox/content.ts b/apps/extension/src/firefox/content.ts new file mode 100644 index 00000000..73e20004 --- /dev/null +++ b/apps/extension/src/firefox/content.ts @@ -0,0 +1,9 @@ +const handleWindowMessage = (event: MessageEvent) => { + if (event.data.action === "exportBookmarks") { + console.log("Received exportBookmarks message via postMessage"); + chrome.runtime.sendMessage({ action: "exportBookmarks" }); + } +}; + + window.addEventListener("message", handleWindowMessage); + diff --git a/apps/extension/src/twitter.ts b/apps/extension/src/twitter.ts index 09118973..53af9b4a 100644 --- a/apps/extension/src/twitter.ts +++ b/apps/extension/src/twitter.ts @@ -366,6 +366,16 @@ const getBookmarks = async (cursor = "", totalImported = 0, allTweets = []) => { }; export const setupTwitterHeaderListener = () => { + const extraOptions = + chrome.runtime.getManifest().manifest_version === 2 + ? ["blocking", "requestHeaders"] + : ["requestHeaders"]; + + // Add extraHeaders only if we're on a Chromium-based browser + if (!navigator.userAgent.includes("Firefox")) { + extraOptions.push("extraHeaders"); + } + chrome.webRequest.onBeforeSendHeaders.addListener( (details) => { try { @@ -426,16 +436,6 @@ export const setupTwitterHeaderListener = () => { const cookie = getHeaderValue("cookie"); const csrf = getHeaderValue("x-csrf-token"); - // // Validate required headers - // if (!auth || !cookie || !csrf) { - // console.warn("Missing required headers", { - // hasAuth: !!auth, - // hasCookie: !!cookie, - // hasCsrf: !!csrf, - // }); - // return; - // } - // Only update storage if values have changed if ( result.cookie !== cookie || @@ -465,6 +465,6 @@ export const setupTwitterHeaderListener = () => { } }, { urls: ["*://x.com/*", "*://twitter.com/*"] }, - ["requestHeaders", "extraHeaders"] + extraOptions ); }; diff --git a/apps/web/app/config/integrations.tsx b/apps/web/app/config/integrations.tsx index 0b55c143..26d9476e 100644 --- a/apps/web/app/config/integrations.tsx +++ b/apps/web/app/config/integrations.tsx @@ -98,6 +98,7 @@ export const getIntegrations = ( console.log("Response:", response); }, ); + await window.postMessage({ action: "exportBookmarks" }, "*"); console.log("Message sent"); }, diff --git a/apps/web/package.json b/apps/web/package.json index 51841eb6..bde35744 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -50,6 +50,7 @@ "@supermemory/db": "workspace:*", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/better-sqlite3": "^7.6.11", + "@types/firefox": "^0.0.34", "@types/prismjs": "^1.26.5", "@types/react-virtualized": "^9.21.30", "@udecode/cn": "^39.0.0", |