40
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
this post was submitted on 17 Oct 2023
40 points (85.7% liked)
Firefox
20363 readers
11 users here now
/c/firefox
A place to discuss the news and latest developments on the open-source browser Firefox.
Rules
1. Adhere to the instance rules
2. Be kind to one another
3. Communicate in a civil manner
Reporting
If you would like to bring an issue to the moderators attention, please use the "Create Report" feature on the offending comment or post and it will be reviewed as time allows.
founded 5 years ago
MODERATORS
Not sure what the question is -- are you looking to port extensions over yourself, or are you just exclaiming, "it can't be so hard, so why won't someone do it!".
There's plenty of documentation over at MDN as to writing extensions, writing cross-browser extensions, porting mv2 firefox extensions over to mv3, the differences between Firefox's mv3 implementation, and that found in Chrome, etc. etc. etc. The following are good starting points: https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions & https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Build_a_cross_browser_extension
For ground-level, basic stuff (managing a popup, communicating between popup & a 'background' script, between content loaded on the browser & your scripts, managing a context menu, etc.) writing an extension is straightforward once you develop some degree of understanding of the sometimes convoluted paths the data needs to take, the permissions you need to have in order to pass messages through, etc. Larger extensions are full fledged applications in their own right, though, so tackling them introduces difficulties of a different order of magnitude.
The Falkon browser is extensible (in its own way) through QML; and the Nyxt browser is extensible in common lisp. These aren't 'webextensions' in the precise sense of the term, though they could be just as useful. I wrote a basic bookmark manager that I use mainly on Firefox; but I ported its core functionality (just send the current page's title, url, & selections from the
<head>
tag over to my database (postgresql via the postgrest http frontend, to which I just make a fetch request)) to QML, and it was pretty straightforward. Falkon is based on Qt's QtWebEngine, which is Chromium-based; Nyxt is based on WebKit.edit: There's also luakit and qutebrowser . The former is extensible via lua 5.1 scripts, the latter, python; there isn't a wealth of documentation & examples, though (at least there wasn't last time I checked) so the API can be a bit of a mystery. Luakit as webkit as its engine, qutebrowser is built on QtWebEngine just like Falkon.