Update on v14

We have officially started work on version 14! It will have some major changes, especially for Firefox users. Many users may not know that even though the Chrome/Edge version of Lightning Autofill has been on MV3 since v12, the Firefox version was still stuck on a clunky MV2/MV3 hybrid code base where we have legacy Firefox MV2 code living alongside MV3 code shared from the Chrome/Edge version, mainly because Mozilla’s implementation of MV3 was too different from Google’s implementation. As a consequence, this setup was prone to bugs and was a maintenance nightmare. Starting with Firefox v136, Mozilla’s implementation of MV3 has been further aligned with Google’s MV3 to the point where the Chrome/Edge and Firefox extensions can finally share the same MV3 code base, which will make maintenance a lot more streamlined.

Attention: Firefox users

BACK UP YOUR DATA.

What does this mean for Firefox users? While we make every effort to test as thoroughly as possible on Firefox, nothing is guaranteed. Hence, you should make a full backup of your data by going to Lightning Autofill Options / Sync and clicking on the Export button. For those who are on older versions of Firefox and don’t want to update to v136 or newer, we will keep the last MV2 version of Firefox (v13.15.2) around for a while to help with the transition.

Breaking changes

$() renamed to LAF$()

The initial release of version 14, v14.0.0, will mostly include architectural changes to prepare for exciting new features to come (e.g., macro recorder, AI autofill). One of the breaking changes will be to the way JavaScript rules are processed. Currently, your JavaScript rules don’t have access to global variables on the web page because they exist in a different “world”, which limits the rules’ power. Starting with v14, your JavaScript rules will be able to interact with global variables like jQuery’s $() since they will share the same world. While this is a big improvement, it means the special function $() to reference variables in your JavaScript rules will be renamed to LAF$() to avoid conflicts with pages that use the $ global.