Firefox Add-on ID Shenanigans
A few days ago, I looked into Firefox add-ons, which, besides extensions, include themes, dictionaries and language packs.
Unsurprisingly, “Firefox add-ons contain a unique ID that is used to distinguish one add-on from any other Firefox add-on.”1
An add-on ID must be either a UUID (surrounded by braces) or “a string formatted like an email address”.2 The add-on is assigned the ID when it is first published. If an ID is specified in the add-ons manifest, it is used, otherwise, a UUID is generated. Either way, the add-on ID is permanent.3
Here’s two Firefox extensions and their respective add-on IDs:
- Old Reddit Redirect:
{9063c2e9-e07c-4c2c-9646-cfe7ca8d0498}
- uBlock Origin:
uBlock0@raymondhill.net
UUIDs
As it was my first time hearing of UUIDs, I took a look at the Wikipedia page, and didn’t understand what was going on. But, what I did understand, was that two special UUIDs exist! The Nil UUID and the Max UUID, specified in section 5.9 and 5.10 of RFC 9562.
Here they are:
- Nil UUID:
00000000-0000-0000-0000-000000000000
- Max UUID:
FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF
Moreover, and what got me excited even more, is that it seems they are so special, they aren’t considered valid!
The Shenanigans
I wondered if an add-on ID can be one of these two special UUIDs. I checked if an add-on was already assigned one of them, but it seemed that wasn’t the case. So, I created a silly extension, put the Max UUID in the manifest, submitted it and waited for it to be approved.
A day has passed and I proudly proclaim that my silly extension is assigned the Max UUID!
https://addons.mozilla.org/addon/{FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF}
That’s it :)
Update
Another day or two has passed and my extensions “was manually reviewed by the Mozilla Add-ons team”.
Our review found that your content violates the following Mozilla policy or policies:
Content, specifically Clone or Fork: There is already one or more add-on(s) listed on AMO with nearly identical functionality. In accordance with AMO policies, we will not host multiple similar or duplicate add-ons. We will reconsider this add-on if further development provides a more unique set of features..
Sad to see that the link above no longer points to my extension, oh well.
At least, the API still shows that an add-on with this ID exists:
https://addons.mozilla.org/api/v4/addons/addon/{FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF}/
Another update a few months later
I’ve been seeing UUIDs everywhere!!
-
https://extensionworkshop.com/documentation/develop/extensions-and-the-add-on-id/ ↩︎
-
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_specific_settings#extension_id_format ↩︎
-
https://extensionworkshop.com/documentation/develop/extensions-and-the-add-on-id/#basic-workflow-with-no-add-on-id ↩︎