aboutsummaryrefslogtreecommitdiff
path: root/crumb_extension
diff options
context:
space:
mode:
Diffstat (limited to 'crumb_extension')
-rw-r--r--crumb_extension/background.js26
-rw-r--r--crumb_extension/manifest.json10
2 files changed, 36 insertions, 0 deletions
diff --git a/crumb_extension/background.js b/crumb_extension/background.js
new file mode 100644
index 0000000..c916c95
--- /dev/null
+++ b/crumb_extension/background.js
@@ -0,0 +1,26 @@
+chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {
+ if (changeInfo.status !== 'complete' || !tab.url.startsWith("http")) return;
+
+ const url = new URL(tab.url);
+
+ const payload = {
+ title: tab.title,
+ url: tab.url,
+ hostname: url.hostname,
+ path: url.pathname,
+ query: url.search,
+ tabId: tab.id,
+ windowId: tab.windowId,
+ favIconUrl: tab.favIconUrl || null
+ };
+
+ console.log("Crumb: Sending payload", payload);
+
+ fetch("http://localhost:3555", {
+ method: "POST",
+ headers: { "Content-Type": "application/json" },
+ body: JSON.stringify(payload)
+ }).catch(err => {
+ console.error("Crumb: Failed to reach server", err);
+ });
+}); \ No newline at end of file
diff --git a/crumb_extension/manifest.json b/crumb_extension/manifest.json
new file mode 100644
index 0000000..1895b57
--- /dev/null
+++ b/crumb_extension/manifest.json
@@ -0,0 +1,10 @@
+{
+ "manifest_version": 3,
+ "name": "Crumb",
+ "version": "0.1",
+ "description": "Local history tracker that sends visit logs to a local server.",
+ "permissions": ["tabs", "history"],
+ "background": {
+ "service_worker": "background.js"
+ }
+} \ No newline at end of file