08 February 2023

Monthly update: February 2023

The dust has settled after the scramble to move the AE Creations Help and Support forums to a new host, following a breakage in Google Groups that prevented posting to the forums through the web interface, a severe issue that received no attention from Google. The forums are now hosted on Groups.io, and like Google Groups, you can post and read messages through the web interface or via your favorite email client.

I also stumbled upon a bug with the uninstallation shell script for Sync Clippings Helper for macOS. The shell script, located in the folder path /Library/SyncClippings/1.2.0, didn't properly clean up installation info due to an error. The missed cleanup step isn't serious, but fixing this bug required me to release a new macOS installer package for both Intel and Apple Silicon-based Macs. I came to the realization that uninstalling Sync Clippings on macOS is ridiculously convoluted in an OS where users normally uninstall an application simply by clicking on its icon and dragging it to the Trash. Sync Clippings Helper doesn't have an app icon to interact with, because it is launched by Firefox (not by a human user) and it runs silently in the background. So I'm now contemplating writing an uninstallation app for macOS as an alternative to running a shell script, which is something ordinary Mac users aren't used to doing.

I've experimented with creating a Manifest V3 (MV3) extension for Firefox, and have a functioning demo published in this GitHub repository (licensed under the Mozilla Public License version 2). New extension manifest keys were introduced, adding menu items to the browser context menu is performed from a new API, and event handling code defined in the background script, such as for clicking on the extension's browser toolbar button ("browser action" in WebExtension jargon), needs to be able to reload extension state when the background script restarts. While I can see the benefit of reducing memory usage by not having extension background scripts constantly running when they're not needed, I'm not thrilled about the drawback of not being able to cache data such as extension settings, since the data would be lost when the background script is killed and would need to be read again from local storage when the script is restarted.

With this knowledge, I'm ready to begin porting Panic Button to MV3, which was the plan I shared in my last update. Panic Button is the first extension chosen for this work, as it is fairly simple and it is in need of an update anyway.