Webextensions and what it means for Toolbar Buttons

by Michael

It has been a long time since I last posted.  I was really busy last year which was my last year of studying.  Recently I have been hesitant to post because I want to see first if I would really be able to recommit to my extensions.
A lot has happened since then that I want to write about.  The biggest change is that soon Webextensions will be the only way to write extensions.  Firefox 55 enforces that all extensions must be multiprocess ready, and then Firefox 57 that they must be written as Webextensions.

This greatly effects Toolbar Buttons, as Webextensions can only have one button per extension.  This of course is a killer for a button pack like Toolbar Buttons. 

The best response I can give to this is to release many of the buttons individually as separate extensions.  I have a list of the Webextensions I have releases so far.  As of writing there are 21 that I have finished.

I am not intending to upload to addons.mozilla.org many of the buttons that only opened links to certain pages.  I have however put together a page of link buttons and have updated the link button maker so it continues to work.

The Custom Toolbar Button maker is not going to make extensions that work with newer versions of Firefox as it does not make sense to have a tool that is supposed to combine multiple buttons into one extension, when there is a limit of one button per extension.  It has been changed so it does not create extensions that work with any version of Firefox from recent times, and instead targets Pale Moon (which forked from Firefox years ago), Sea Monkey and Thunderbird.

There is a thread on my forum about the change.

Opinions on the change

When trying to explain this to a lot of people (I been getting quite a few emails, and comments left on my extensions) a lot of time the reaction is they are angry with Mozilla for making a change like this. I however fully support what they are trying to do.  Before extensions could access any part of the Firefox code, and could do almost anything they wanted.  This created problems for extensions developers like me, particularly with Toolbar Buttons, because every time they changed something it could break an extension.  There was almost always one or two buttons broken in Toolbar Buttons because of this.  Now they are giving us a much more restricted API to work with, but with a promise that there should be few if any incompatible changes.  The API is also modelled on what other browsers are doing so porting extensions to or from other browsers will be much easier.

A great example of internal changes that really messed extensions up is what happened in Firefox 55 with all being required to be multiprocess compatible.  They have I believe been delaying this change for awhile because they wanted to give developers a chance to catch up. There are some quite exciting things coming in the future that should really take advantage of multiprocess support, and should really help to speed things up.

Also it cuts down on the possibility of extensions doing something dangerous. Before an extension could do anything that any other application could. Which meant to keep users safe they all had to be reviewed before release.  This both delayed extension updates, and also meant a lot of man power had to go into reviewing extensions.  With this cut down, since they are now more limited and have to declare what they do, hopefully we can see some more rapid development.

It is true also at this stage that there are a lot of extensions that can't be ported.  There are dozens of buttons from Toolbar Buttons that I can’t port over.  But they do appear to be very open to adding to the current API to expand the possibilities.  So I can see in the future many of these casing with a little reimagining making it over.

The Custom Button Maker and Extension Signing

by Michael

Firefox will begin to require that all extensions be signed starting with Firefox 40 which is due out in August. That will effect, at least for some time, the Custom Button Maker.

Mozilla has promised that the will provide a way of automatically signing extensions, so that programs like my own will be able to sign the extension automatically. But also warned that this will not be available when the first versions of Firefox that will require are released. So for some time all extensions made from it will not install.

While waiting for an automated system to sign the generated extensions there are some work arounds. One is not to upgrade past Firefox 39 for awhile. I don't recommend this as you will miss out on important security updates. Other options are to move to another supported browser like Pale Moon or SeaMoneky which though similar to Firefox, will not require extension signing (yet). Mozilla has also promised an unbranded version of Firefox with extension signing disabled, but details on that are still lacking.

To help I have started to upload some of the popular buttons to addons.mozilla.org. You can find them on my profile page.

Some people might be tempted to upload the buttons as unlisted extensions on AMO. I ask that you kindly don't unless you first change the extensions ID, or else you will cause problems for me later.

2,000,000 Downloads of Toolbar Buttons

by Michael

Over the weekend, Toolbar Buttons passed the 2,000,000 download mark on addons.mozilla.org! At one point I though that might happen never the end of this year, but being the featured add-on this month has made downloads go so fast, it has been a great experience to watch.

I am hoping to get the next release out soon, with a whole lot of improvements, just some bugs I am having problems with. I also hope to start releasing some versions of that Toolbar Buttons that are collections of buttons based on particular themes, such as Tabs, or Bookmarks or Developer Tools. I have also been in contact with the maintainers of LXLE Desktop who are interested in making a version of Toolbar Buttons installed by default in their distribution of Linux. So much going on, it is amazing!

Moving Code to GitHub

by Michael

Recently I have begun to move my active projects over to GitHub from svn. The general idea is that it will make it much easier for others to contribute. So far I have created 10 repositories. And here is a summary of the main ones:

Toolbar Buttons
Toolbar Buttons, which is the featured add-on of the month, is my last collection of buttons for Firefox and Thunderbird.
This is the build system going on sdk/toolkit that I developed to manage Toolbar Buttons. It is now almost decoupled from it and ready for general use.
The Django applications that run this site. Its goal is to be for web masters, what Django is for web developers. All the needed parts out of which to build a web site.

If you are interested in the development of any of these projects, please Follow me on GitHub

Toolbar Buttons Beta and Progress Report

by Michael

It was back in November that I last did a post to announce Toolbar Buttons 1.0.2, so I figured it was time to say what I have been up to.

First, there is now a beta version of Toolbar Buttons 1.0.4 out, it has a lot of changes, including a few new buttons, extra features and bug fixes. You can get it from the nightly download page. I have also made so it can install without needing to restart, but I am still a little unsure about how stable that is. But also we are very excited about our comming releases, since the statistics from the Custom Toolbar Button Maker indicate over 30% of the most popular buttons were created since releasing version 1.0.2. Some of these will make it into 1.0.4 and the result into other releases.

Also I have started a new blog called The Catch, which will mostly be about programming, and technical things of that nature. I am going to try and do a post every two weeks or so.

I have also finished off the mobile design for the web site, so if your viewing Codefisher.org on your phone, it is now fully accessible.

If you want to see what we will be doing in the future, I have put up a Road Map of where I am trying to do. Also in the near future I hope to move a lot of code over to Github in the hope of making it easier to others to contribute.

Toolbar Buttons 1.0.2

by Michael

I am releasing a new version of Toolbar Buttons again. This fixes a number of issues that were found in the previous release. The following issues were fixed.

  • Fixed some icons not showing.
  • Fixed a problem that caused Firefox to hang on start up.
  • Restored the Resize Search Bar button, that had been left out of the previous release.
  • Fixed many of the broken SeaMonkey buttons.
  • Fixed how some windows opened, since they were opening with the wrong size.

You can Download the latest version of Toolbar Buttons here.

Toolbar Buttons 1.0.1

by Michael

I have release version 1.0.1 of Toolbar Buttons. You can download the new version from the Toolbar Buttons homepage and read about the changes in the release notes. But some of the important things that are worth a mention, is there is about 12 news buttons, and support was brought up to the latest versions of Firefox and Thunderbird.

For any bug reports please use the forum. For new buttons please see the new simple bug tracker.

Pastel SVG 1.2

by Michael

The Pastel SVG icon set has received an update. There are now many more icons then there was before, getting close to having all the icons that were in Silk Icons.

In addition to updating icon set itself, I have updated its home page. It is now easier to a copy of the SVG source files, and also easier to search though the icons.

With some luck there will be another update of the icon set in the coming months that will include all the icons the Silk Icons, and also have some of the 24x24 icons touched up, since they need a little work because the scaling of them does not always produce a perfect result.

Codefisher.org Relaunched

by Michael

It has been a while, but recently I have been back working on some things, and the first result is I have finally been able to relaunch Codefisher.org, with a new design and a number of other updated features.

The most useful part of the update might be that Custom Button Maker and Custom Link Button Maker have been updated. So now they both work properly, and also have new features.

Also there is a new design for the site, which I created some time ago, but never had the time to apply. And also the software on which the site runs is new.