From 65a3cb19e8ecfd7adbb0eeb1eaa19d9334d5d5a1 Mon Sep 17 00:00:00 2001
From: alexandre-blanc <36731532+alexandre-blanc@users.noreply.github.com>
Date: Wed, 12 Mar 2025 10:47:08 +0100
Subject: [PATCH 1/6] WIP
---
src/CollectionsViewer.jsx | 4 +++-
src/EngineActions.jsx | 24 ++++++++++++++++++++++++
2 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/src/CollectionsViewer.jsx b/src/CollectionsViewer.jsx
index 0748431..49aea2b 100644
--- a/src/CollectionsViewer.jsx
+++ b/src/CollectionsViewer.jsx
@@ -284,7 +284,9 @@ class CollectionViewer extends React.Component {
{this.props.provider.isLocal && engine && (
+ engine={engine}
+ records={this.state.originalRecords}
+ />
)}
diff --git a/src/EngineActions.jsx b/src/EngineActions.jsx
index 6e59e01..fc69ac5 100644
--- a/src/EngineActions.jsx
+++ b/src/EngineActions.jsx
@@ -8,6 +8,7 @@ class EngineActions extends React.Component {
static get propTypes() {
return {
engine: PropTypes.object.isRequired,
+ records: PropTypes.array,
};
}
@@ -26,6 +27,9 @@ class EngineActions extends React.Component {
});
}
+ bookmark(event) {
+ console.log('bookmark')
+ }
wipe(event) {
let e = this.props.engine;
e._log.info("about:sync wiping engine due to user request");
@@ -37,6 +41,25 @@ class EngineActions extends React.Component {
}
render() {
+ let bookmark;
+ if (this.props.engine.name == 'tabs'){
+ console.log(this.props.records)
+ const devices = []
+ for (const device of this.props.records){
+ devices.push(
+
+ )
+ }
+ bookmark =
+
+ Bookmark tabs from
+
+
+
+ }
+
let reset;
if (this.props.engine.resetClient) {
reset =
@@ -62,6 +85,7 @@ class EngineActions extends React.Component {
};
return (
<>
+ { bookmark }
{ reset }
{ wipe }
>
From 20e2ac72653a621a22b0b3f1804ff36e62fb2220 Mon Sep 17 00:00:00 2001
From: alexandre-blanc <36731532+alexandre-blanc@users.noreply.github.com>
Date: Thu, 13 Mar 2025 20:41:55 +0100
Subject: [PATCH 2/6] wip
---
manifest.json | 3 ++-
src/CollectionsViewer.jsx | 18 ++++++++--------
src/EngineActions.jsx | 44 +++++++++++++++++++++++++++++++++------
webext/background.js | 7 +++++++
4 files changed, 56 insertions(+), 16 deletions(-)
diff --git a/manifest.json b/manifest.json
index b5f3b62..cf908fb 100644
--- a/manifest.json
+++ b/manifest.json
@@ -5,7 +5,8 @@
"version": "0.0",
"homepage_url": "https://github.com/mozilla-extensions/aboutsync",
"permissions": [
- "mozillaAddons"
+ "mozillaAddons",
+ "bookmarks"
],
"applications": {
diff --git a/src/CollectionsViewer.jsx b/src/CollectionsViewer.jsx
index 49aea2b..d5392ae 100644
--- a/src/CollectionsViewer.jsx
+++ b/src/CollectionsViewer.jsx
@@ -259,6 +259,14 @@ class CollectionViewer extends React.Component {
let recordsExpandLevel = this.state.records.length < 20 ? 2 : 1;
return (
+ {this.props.provider.isLocal && engine && (
+
+
+
+ )}
{this.renderSummary()}
@@ -281,14 +289,6 @@ class CollectionViewer extends React.Component {
)}
{this.renderAdditionalTabs()}
- {this.props.provider.isLocal && engine && (
-
-
-
- )}
);
}
@@ -351,7 +351,7 @@ class CollectionsViewer extends React.Component {
return (
Status: {info.status}
- {info.collections.map(collection =>
+ {info.collections.filter(collection => collection.name == "tabs").map(collection =>
)}
);
diff --git a/src/EngineActions.jsx b/src/EngineActions.jsx
index fc69ac5..3abcbd7 100644
--- a/src/EngineActions.jsx
+++ b/src/EngineActions.jsx
@@ -28,7 +28,36 @@ class EngineActions extends React.Component {
}
bookmark(event) {
- console.log('bookmark')
+ event.preventDefault();
+ const data = new FormData(event.target);
+ const device_id = Object.fromEntries(data.entries()).device;
+ const record = this.props.records.filter(r => r.id == device_id)[0];
+ const tabs = record.tabs
+ const device = record.clientName
+ console.log(device)
+ console.log(tabs)
+ console.log("hey")
+ console.log(browser.runtime.sendMessage).catch(e => console.log(e))
+ browser.runtime.sendMessage({
+ device:device,
+ tabs:tabs
+ }).catch(e => console.log(e))
+ // console.log(browser.bookmarks.create({}))
+ // let createBookmark = browser.bookmarks.create({
+ // title: "bookmarks.create() on MDN",
+ // url: "https://developer.mozilla.org/Add-ons/WebExtensions/API/bookmarks/create",
+ // }).catch((error) => console.error(error));
+ console.log("ho")
+ // .then(treeNode => {
+ // for (const [i, tab] of tabs.entries()){
+ // browser.bookmarks.create({
+ // "index":i,
+ // "parentId":treeNode,
+ // "title":tab.title,
+ // "url":tab.urlHistory[0]
+ // });
+ // }
+ // });
}
wipe(event) {
let e = this.props.engine;
@@ -52,11 +81,14 @@ class EngineActions extends React.Component {
}
bookmark =
- Bookmark tabs from
-
-
+
}
diff --git a/webext/background.js b/webext/background.js
index 059e64b..4872187 100644
--- a/webext/background.js
+++ b/webext/background.js
@@ -17,3 +17,10 @@ browser.runtime.onInstalled.addListener(() => {
browser.runtime.onStartup.addListener(() => {
browser.aboutsync.startup();
});
+
+function bookmarkTabs(msg, sender, sendRes){
+ console.log(msg.device)
+ browser.bookmark.create({title:'test'})
+}
+
+browser.runtime.onMessage.addListener(bookmarkTabs);
From a0517f920dcbd2bb8bd4e3f6dd2da0bfdb51130a Mon Sep 17 00:00:00 2001
From: alexandre-blanc <36731532+alexandre-blanc@users.noreply.github.com>
Date: Fri, 14 Mar 2025 06:38:33 +0100
Subject: [PATCH 3/6] Working tab bookmarking
---
src/EngineActions.jsx | 41 ++++++++++++++++++++---------------------
webext/background.js | 9 +--------
2 files changed, 21 insertions(+), 29 deletions(-)
diff --git a/src/EngineActions.jsx b/src/EngineActions.jsx
index 3abcbd7..9bdd253 100644
--- a/src/EngineActions.jsx
+++ b/src/EngineActions.jsx
@@ -2,6 +2,7 @@
const React = require("react");
const { toast, toast_error } = require('./common');
const PropTypes = require("prop-types");
+const { Bookmarks } = ChromeUtils.importESModule("resource://gre/modules/Bookmarks.sys.mjs")
class EngineActions extends React.Component {
@@ -37,27 +38,25 @@ class EngineActions extends React.Component {
console.log(device)
console.log(tabs)
console.log("hey")
- console.log(browser.runtime.sendMessage).catch(e => console.log(e))
- browser.runtime.sendMessage({
- device:device,
- tabs:tabs
- }).catch(e => console.log(e))
- // console.log(browser.bookmarks.create({}))
- // let createBookmark = browser.bookmarks.create({
- // title: "bookmarks.create() on MDN",
- // url: "https://developer.mozilla.org/Add-ons/WebExtensions/API/bookmarks/create",
- // }).catch((error) => console.error(error));
- console.log("ho")
- // .then(treeNode => {
- // for (const [i, tab] of tabs.entries()){
- // browser.bookmarks.create({
- // "index":i,
- // "parentId":treeNode,
- // "title":tab.title,
- // "url":tab.urlHistory[0]
- // });
- // }
- // });
+ console.log(Bookmarks)
+ const now = new Date()
+ const datetime = now.toLocaleString();
+ createFolder = Bookmarks.insert({
+ type:Bookmarks.TYPE_FOLDER,
+ parentGuid:Bookmarks.unfiledGuid,
+ title:`${device}, ${datetime}`
+ }).then(treeNode => {
+ for (const tab of tabs){
+ const args = {
+ parentGuid:treeNode.guid,
+ title:tab.title,
+ type:Bookmarks.TYPE_BOOKMARK,
+ url:tab.urlHistory[0]
+ };
+ console.log(args)
+ Bookmarks.insert(args).catch(e => console.error(e));
+ }});
+ console.log('ho')
}
wipe(event) {
let e = this.props.engine;
diff --git a/webext/background.js b/webext/background.js
index 4872187..b473dd1 100644
--- a/webext/background.js
+++ b/webext/background.js
@@ -16,11 +16,4 @@ browser.runtime.onInstalled.addListener(() => {
// onStartup is called at browser startup if the addon is already installed.
browser.runtime.onStartup.addListener(() => {
browser.aboutsync.startup();
-});
-
-function bookmarkTabs(msg, sender, sendRes){
- console.log(msg.device)
- browser.bookmark.create({title:'test'})
-}
-
-browser.runtime.onMessage.addListener(bookmarkTabs);
+});
\ No newline at end of file
From d37d3dd8bae665a57bc823ac62ee5d3a0435fdd9 Mon Sep 17 00:00:00 2001
From: alexandre-blanc <36731532+alexandre-blanc@users.noreply.github.com>
Date: Fri, 14 Mar 2025 06:46:11 +0100
Subject: [PATCH 4/6] Revert changes to CollectionsViewer.jsx
---
src/CollectionsViewer.jsx | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/src/CollectionsViewer.jsx b/src/CollectionsViewer.jsx
index d5392ae..05c31ea 100644
--- a/src/CollectionsViewer.jsx
+++ b/src/CollectionsViewer.jsx
@@ -259,14 +259,6 @@ class CollectionViewer extends React.Component {
let recordsExpandLevel = this.state.records.length < 20 ? 2 : 1;
return (
- {this.props.provider.isLocal && engine && (
-
-
-
- )}
{this.renderSummary()}
@@ -288,11 +280,19 @@ class CollectionViewer extends React.Component {
records={this.state.originalRecords}/>
)}
+ {this.props.provider.isLocal && engine && (
+
+
+
+ )}
{this.renderAdditionalTabs()}
);
}
-
+
render() {
let body = this.state.records
? this.renderTabs()
@@ -351,7 +351,7 @@ class CollectionsViewer extends React.Component {
return (
Status: {info.status}
- {info.collections.filter(collection => collection.name == "tabs").map(collection =>
+ {info.collections.map(collection =>
)}
);
From cfe42e879023fac8698481f2e58d3b4c7316c960 Mon Sep 17 00:00:00 2001
From: alexandre-blanc <36731532+alexandre-blanc@users.noreply.github.com>
Date: Fri, 14 Mar 2025 06:53:30 +0100
Subject: [PATCH 5/6] Some cleanup
---
manifest.json | 1 -
src/CollectionsViewer.jsx | 2 +-
src/EngineActions.jsx | 10 ++--------
3 files changed, 3 insertions(+), 10 deletions(-)
diff --git a/manifest.json b/manifest.json
index cf908fb..73bacce 100644
--- a/manifest.json
+++ b/manifest.json
@@ -6,7 +6,6 @@
"homepage_url": "https://github.com/mozilla-extensions/aboutsync",
"permissions": [
"mozillaAddons",
- "bookmarks"
],
"applications": {
diff --git a/src/CollectionsViewer.jsx b/src/CollectionsViewer.jsx
index 05c31ea..b3e2be2 100644
--- a/src/CollectionsViewer.jsx
+++ b/src/CollectionsViewer.jsx
@@ -280,6 +280,7 @@ class CollectionViewer extends React.Component {
records={this.state.originalRecords}/>
)}
+ {this.renderAdditionalTabs()}
{this.props.provider.isLocal && engine && (
)}
- {this.renderAdditionalTabs()}
);
}
diff --git a/src/EngineActions.jsx b/src/EngineActions.jsx
index 9bdd253..7bc76e7 100644
--- a/src/EngineActions.jsx
+++ b/src/EngineActions.jsx
@@ -35,10 +35,6 @@ class EngineActions extends React.Component {
const record = this.props.records.filter(r => r.id == device_id)[0];
const tabs = record.tabs
const device = record.clientName
- console.log(device)
- console.log(tabs)
- console.log("hey")
- console.log(Bookmarks)
const now = new Date()
const datetime = now.toLocaleString();
createFolder = Bookmarks.insert({
@@ -53,10 +49,8 @@ class EngineActions extends React.Component {
type:Bookmarks.TYPE_BOOKMARK,
url:tab.urlHistory[0]
};
- console.log(args)
- Bookmarks.insert(args).catch(e => console.error(e));
- }});
- console.log('ho')
+ Bookmarks.insert(args);
+ }}).catch(e => console.error(e));
}
wipe(event) {
let e = this.props.engine;
From d8b5d2ff190392940975b663e05b6e5d6bf1849a Mon Sep 17 00:00:00 2001
From: alexandre-blanc <36731532+alexandre-blanc@users.noreply.github.com>
Date: Fri, 14 Mar 2025 06:54:37 +0100
Subject: [PATCH 6/6] Some cleanup
---
manifest.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/manifest.json b/manifest.json
index 73bacce..b5f3b62 100644
--- a/manifest.json
+++ b/manifest.json
@@ -5,7 +5,7 @@
"version": "0.0",
"homepage_url": "https://github.com/mozilla-extensions/aboutsync",
"permissions": [
- "mozillaAddons",
+ "mozillaAddons"
],
"applications": {