Where did you install Firefox from? Help Mozilla uncover 3rd party websites that offer problematic Firefox installation by taking part in our campaign. There will be swag, and you'll be featured in our blog if you manage to report at least 10 valid reports!

Search Support

Avoid support scams. We will never ask you to call or text a phone number or share personal information. Please report suspicious activity using the “Report Abuse” option.

Learn More

How and with what can I write addons for Firefox?

more options

I have identified some needs for addons for both Firefox and Thunderbird. As an experienced programmer in several languages (including, most recently, Microsoft Office VBA), I am convinced I could write these myself. Where can I get information on the language to be used and the hooks into FF and TB?

I have identified some needs for addons for both Firefox and Thunderbird. As an experienced programmer in several languages (including, most recently, Microsoft Office VBA), I am convinced I could write these myself. Where can I get information on the language to be used and the hooks into FF and TB?

All Replies (2)

more options
more options

I learned about programming in WordBasic and VBA myself. To target web pages in browsers, you'll want to code in JavaScript and become fluent in the DOM (https://developer.mozilla.org/docs/We.../Document_Object_Model).

Depending on the scope of your needs, a user script might be a quicker way to attack most problems than an extension. Like an Office macro, a userscript runs in a host programming environment (in this case, the Greasemonkey extension) and allows you to experiment freely without a full build cycle (just save script, reload page). There are different APIs you need to learn to convert user scripts to extensions, but depending on your project, that might be overkill.

As an example, here's a page about a script I maintain (the code's very improvised, as you might expect when a lawyer writes JavaScript): https://www.jeffersonscher.com/gm/google-hit-hider/

More information: