aboutsummaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorDhravya Shah <[email protected]>2025-02-18 20:43:29 -0700
committerDhravya Shah <[email protected]>2025-02-18 20:43:29 -0700
commitf6c2e220a39974c3075b4d7308d2aaa23fc31b78 (patch)
tree859335dcdf7b823fe60a2d0d21bdd258731fd61c /apps
parentfirefox support (diff)
downloadsupermemory-firefox-support.tar.xz
supermemory-firefox-support.zip
unable to get the message throughfirefox-support
Diffstat (limited to 'apps')
-rw-r--r--apps/extension/manifest.json10
-rw-r--r--apps/extension/src/background.ts1
-rw-r--r--apps/extension/src/firefox/content.ts9
-rw-r--r--apps/extension/src/twitter.ts22
-rw-r--r--apps/web/app/config/integrations.tsx1
-rw-r--r--apps/web/package.json1
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",