Affixa Browser Extensions - Manifest v3

Most modern web browsers are in the process of introducing a new version of the "manifest" standard to which browser extensions are built. This means that many browser extensions that are written according to version 2 of that standard now need to be upgraded to version 3.


At the time of writing, we have developed but not yet published our new version of the extension targeting version 3. The reason for the delay is that, as things stand, we will also need to update the Affixa Desktop and Affixa Enterprise software itself as well as the browser extension, which we'd rather not be forced to do.


Introducing a version dependency between the installed software and the browser extension leaves us in a situation where the new version of the extension would work for some customers but not others (because they've got an older, incompatible version of the software on their PC). We'd also not be able to use the extension to advise users to update their software.


Of course, right now, the current browser extension works for everyone regardless of the version of the desktop software.


Additionally, there isn't an alignment in manifest v3 implementation approaches between Chromium-based browsers (Chrome, Edge, Brave, etc) and Gecko-based browsers (Firefox).


Further detail on these technical challenges can be found below.


We are therefore working to the following timeline / strategy:


  1. Allow until 31 January 2025 for refinements to be made to the manifest v3 implementations in browsers. We will actively re-test our v3-compatible extension until this date in the hope of avoiding any version dependencies or incompatibilities between browser platforms.
  2. If the above factors resolve themselves before that date, we will release the new version of the browser extension as soon as possible and users' browsers will upgrade this automatically in most cases.
  3. If the above factors don't resolve themselves by the end of January, we will:
    1. Prioritise the Chromium-based extension and retire the Firefox extension.
    2. Release new versions of Affixa Desktop and Affixa Enterprise by 7 February 2025 at the latest.
    3. Send an email mailshot to advise customers to upgrade their installed software during February 2025, March 2025 and April 2025.
    4. Release the v3-compatible extension on or around 1 May 2025.

Technical Notes

For anybody who's curious, here's some more technical detail on the issues we're facing.


Why we currently need to release a new version of the installed PC software

When Affixa launches your browser to show a draft message, it uses an address similar to:

https://mail.google.com/mail/u/0/?affixa=-1225818694#drafts/?compose=GTvVlcSMSqLWmXnCXpcwWVXqTKRWNQfQMTXdlQtCtTthzDfGrcgcdrdfqCLXqwtmhTMwGlQGWDKtB

The browser extension notes the "affixa" bit of the web address and reacts to this.


In manifest v3, declarative net requests are used to implement this kind of reactivity. However, we've found that the above link doesn't get picked up by the filtering; in fact, it bypasses any filtering at all. However, removing the /u/0 bit of the address means filtering does work.


We are confident that this isn't a case of us using a flawed regular expression match or anything similar; it's just that the filters are not even processed at all for the normal Gmail address.


Since we can't intercept the web address currently used by Affixa, we also can't trigger an alert saying that the user needs to update their installed software.


This is why we would need to release a new version of the desktop software; to subtly change the address that's used to launch your browser, removing /u/0 altogether and ensuring the extension is able to filter and react accordingly.


Differences between Chromium and Gecko implementations

Chromium v3 extensions must use a service worker, whereas Gecko v3 extensions still use a background script.


The extension is currently not reacting to Gmail web addresses as it should when operating as a background script in Firefox and we are investigating further.


We know that the vast majority of our users are using Chromium-based browsers and a minority are using Firefox. As such, we will prioritise Chromium for the v3 implementation and leave the v2 implementation on the Firefox Add-Ons site for the time being.