Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Roadmap to a Firefox port? #16

Open
hyiltiz opened this issue Jan 30, 2022 · 6 comments
Open

Roadmap to a Firefox port? #16

hyiltiz opened this issue Jan 30, 2022 · 6 comments

Comments

@hyiltiz
Copy link

hyiltiz commented Jan 30, 2022

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)?

@tconfrey
Copy link
Owner

tconfrey commented Feb 1, 2022

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!

@hyiltiz
Copy link
Author

hyiltiz commented Feb 9, 2022

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.

@tconfrey
Copy link
Owner

tconfrey commented Feb 9, 2022

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.

@lytex
Copy link

lytex commented Apr 30, 2022

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
Copy link
Owner

tconfrey commented Apr 30, 2022 via email

@dlobue
Copy link

dlobue commented Jun 24, 2022

@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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants