Firefox Extensions, herein lies a big problem!

The great news in the past year or so is that Chrome, Firefox and MS Edge now implement the same Browser Extension framework. This means that for the first time we can (theoretically) develop Extensions that work across all three Browsers, with only minimal changes – hoorah!

I mentioned in my last article that we now have the Clibu Web Clipper Browser Extension working for Firefox.  It’s development was rather painstaking, primarily because finding and fixing issues in Browser Extensions in Firefox is really hard work.

Firefox makes you use different debuggers (apps that help locate problems) depending on which of the three components that make up an extension you are working in. And much of the time I couldn’t get them to do what they are supposed to do, debug! Now this may be partly due to the way I develop, writing es6 code and transpiling, however I’m not doing anything all that unusual. And often times Firefox would just crash when it was trying to load Node.js modules it shouldn’t have had any interest in, in the first place.

To complicate matters further there are Browser functions such as being notified when the user selects some content, which aren’t available in Firefox. This quite basic, yet important capability is mentioned in Bug 1242718 posted Dec 2015 and seems to be going nowhere in a hurry.  Desktop notifications can’t be updated in Firefox and Bug 1215025Popup size does not respond to content change, reported Oct 2015 is still waiting to be fixed.

None of these issues are show stoppers, however they do impinge on the functionality we need to deliver to our users.

But there is a show stopper, a very big one, which prevents us from making the Clibu Web Clipper available for Firefox. Let me rewind a step.

Once you have a fully debugged and working Browser extension, you need to go through a series of steps before it can get published in Firefox Add-ons, which is where you get to download extensions from.

First you have to submit the extension, then in 5-7 days someone will get in touch with you with further instructions. Specifically they require the developer provide full source code for the extension along with complete instructions on how to build the extension from the source code, so they can verify it compares exactly with the compiled extension you upload.

The “Source Code Submission” section of the Review Policies states:

This code will be reviewed by an administrator and will not be shared or redistributed in any way. The code will only be used for the purpose of reviewing the add-on.

There are multiple fundamental issues here.

First the build process for the Clibu Web Clipper is a complex one requiring installation and setup of various development and build tools. We would need to provide detailed documentation in order for them to accomplish the build and it would take them a fair amount of time and expertise to set this up.

Second they want access to our intellectual property without offering to sign a NDA as part of the process. Saying that I’m reluctant to do this, is an understatement.

Third the entire process is onerous, costly and time consuming. And is one I assume needs to be repeated each time we update the extension.

Now let me contrast this to getting the Clibu Web Clipper published in the Chrome Store.  Step one, upload the extension, wait up to 60 minutes and if there are no issues the extension is live and available for download. So far we’ve had three releases of the Chrome Web Clipper and each one has gone off without a hitch and has been live in around 30 minutes.

You simply need to look around and you will see lots and lots of Browser Extensions that are available for Chrome that should also be available for Firefox, but aren’t. It’s not hard to see why.

Besides making it quick and simple to publish to the Chrome Store, development of Browser Extensions using the Chrome Developer Tools is also a breeze, with none of the issues seen in Firefox.

Unfortunately these issues aren’t limited to just developing Browser Extensions for Firefox, but impinge on overall development of Web applications using the Firefox Browser and it’s development tooling.

I’ve been holding off writing this rant, but I’m sorry Firefox folks, but I’m simply not prepared to jump through these hoops.

I read a few months back that Firefox’s plans for 2017 are to develop a faster, better browser. According to the Firefox 2016/17 Strategy & Roadmap

Firefox will deliver a rock solid browsing experience with world-beating customization and a first of its kind recommendation engine that gets you the content you want when you want it, whether at home or on the go.  ….

Firefox will deliver the best of the web in a way that is more useful and navigable than on any other browser. With great new features like Activity Stream and Recommender, the Firefox Context Graph will deliver the right web page, always.

Well that has a nice warm and fuzzy ring, but maybe they’d be better devoting resources elsewhere. Improve the developer experience, fix long outstanding bugs , get as close as possible to the latest Web standards and give us the new Javascript, HTML and CSS capabilities present in other Browsers.

As of this writing Firefox usage is down around 12%. Given that and the issues raised above, it is hard to see why folks like me should keep on devoting precious resources to support Firefox.

Neville