#2 – Adventures in AMO Land

March 05, 2018

So I recently published an add-on to the Firefox Add-ons page. It's a simple add-on that allows you to right click on a link and open it on other window. I was inspired by an old XUL add-on "Window Master", which was discontinued after Mozilla deprecated all legacy add-ons and moving to webextension. I coded the first version quickly in one night, and it really shows how matured the webextension specification has become.

List of Window Master's Features
The olde Window Master, you'll never be forgotten

The old Window Master add-on was a one-for-all extension for using Firefox with multiple window setup. It features resizing window on a grid-like layout, moving window and tab between monitors, and opening link on other window. As Mozilla completely disabled legacy add-ons on FF 57, I was missing the functionality and ease-of-use that came from that add-on. Rebuilding it from scratch in webextension would be impossible since it heavily modify browser DOM and it was forbidden to do so in webextension. I was starting to accept that there will be no replacement of this add-on in near future, until I noticed that its features was implemented on multiple smaller add-ons.

window layout resizer
Window Layout Resizer Addon
move tab
Move Tab Addon

So we are not doomed after all! Even though customization is limited (Window Master have a cool drag-able grid layout on context menu), as long as it fulfills the requirement concisely, I think it is acceptable as a replacement. After all, we are trading small freedom for security. I will expect the old all-in-one approach of legacy add-ons will be replaced by smaller, lighter, and feature-focused webextension add-ons.

And thus I tried to fulfill the gap by implementing one of the features. As mentioned before, I did once tried to reimplement Window Master when the news that the legacy add-ons will be discontinued was announced. I tried to learn how XUL add-on works and how to reimplement it on webextension, but the old XUL documentation is too complicated, while the new webextension docs wasn't quite complete yet, so I gave up. Now that the docs is complete (and the goal was to implement only one feature), I can learn how to do it easily and finish making the add-on just overnight. Now I'm thinking about implementing the last feature that haven't been implemented yet: moving window between monitors.

open link in other window
Open Link in Other Window Addon

Kindly check my add-on, also my collection for people who works with multiple screen (which is actually all add-ons that implemented Window Master's features).