tconfrey / BrainTool

A better way to manage Tabs, Links and Notes

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Roadmap to a Firefox port?

hyiltiz opened this issue · comments

What are the necessary steps if someone is interested in porting it to Firefox? Now that Firefox addons are also using WebExtentions, maybe it is much less an effort (compared to the XUL era)?

Hey there. TBH I don't have a roadmap for FF. I would like to support it and don't even think its that much work but being on Chrome and Edge (+ Brave, Vivaldi etc) I have many more pressing enhancements. There's a document here: https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Chrome_incompatibilities that talks about incompatibilities. On skimming it I don't see any showstoppers but in these cases you often don't know what you'll find until you try!

LMK if you give it a try!

I do wanna give it a try if you can point me to a "Makefile" that creates a binary I can try to import into Firefox. We can take it from there to see if there are dependencies, interface incompatibilities etc.

Hi Hörmet.
There is no Makefile or similar in BrainTool. The process for submitting to the Chrome and Edge store is just to zip up the /extensions folder. During development you can 'Load Unpacked' to load a local extension from the file system. It seems like something similar can be done in FF, see the Installing section here. If you load a local version of /versions/0.9.8/extension you should be running the latest version of the extension in your browser talking to the braintool.org site to run the 0.9.8 topic manager code.

I tried it just now and the extension launches but it doesn't look like the content script (which runs inside the topic manager) is injected, or maybe it throws an error. The topic manager just hangs. I don't see errors in the extension itself and can't find how to open the content script in the debugger.

Hopefully this gets you out of the starting blocks. LMK if I can help further. BTW about 60 lines into background.js you'll see an array of 'Handlers' followed by the onMessage listener function. These pretty much define the contract that the background process needs to implement.

commented

I'm trying to run it with Firefox

The first time I click the BrainTool icon, I get a startup message:

There are two parts to BrainTool:
- The Topic Manager where you manage your topics and control the browser.
- The Saver where you save pages into your topic tree.

The second time however it tries to connect to localhost:8000 and fails. Do I have to start a server before running the extension?

Also I get the following error, hopefully it's related to the previous issue:

[firefox/index.js][debug] Firefox stderr: JavaScript error: moz-extension://2b6d2f98-608f-4acd-ad09-5f89dec95a71/background.js, line 180: TypeError: chrome.windows.onBoundsChanged is undefined

@tconfrey I'd also like to help out. I took a look around, but I don't see a project.json. How do you pull in external dependencies? Something like https://github.com/mozilla/webextension-polyfill would be perfect to help handle cross-browser compatibility, but I don't see a natural way to bring it in.