Please sign in to access this page
A WebExtension and native app to convert Google Chrome extensions for use in Firefox.
No followers yet
Once you ship this you can't edit the description of the project, but you'll be able to add more devlogs and re-ship it as you add new features!
Fixed an issue where extensions would end up with ids such as msgappname or similar. As my code generated the id based on extension name, if an extension had this as their name in the manifest (i18n locales handling) then its name would show up normally in the browser, but the script could not handle it, resulting in such an extension id. This was fixed by having the script scan for the i18n message in the _locales directory of the extracted crx, and use that instead.
Made a python install script that can later be converted with pyinstaller for easy installation process on all os. Currently it downloads the native messaging executable from github and registers the native manifest, and the user only has to run this and install the extension.
Spent way too long setting up gh actions to build the python script into an executable file. It simplifies the installation process as there is no longer a need for setting up venv etc
Fixed an issue where installing multiple extensions in quick succession resulted in an error of address already in use, by making the temp server shut down as soon as it finished serving a file. Also fixed some issues on the extension end...
Fixed an issue where with larger files, the connection to the temporary server would be reset and the file could not be downloaded. This was because due to Firefox security, an extension can only be programmatically installed in the same event frame as a user action (button press etc) so now when the extension has been converted, it shows another button to install it, bypassing this.
Created an installation script for installing the native messaging manifest, setup python venv, etc. Eventually it will be easier once i package the script into a single executable without need for external python
Implemented the communication between the browser extension and a python script that allows the extension to send extension info to the script, after which it will be downloaded, converted to xpi, then hosted on a temporary http server which the extension opens for user to confirm installation. Also implemented changing of Chrome service_worker to Firefox scripts in the manifest.
Created the start of a Firefox extension, which adds the add to firefox button to the webpage. Currently working on an implementation to communicate with the script using extensions native messaging for the script to handle conversion. (bypass webextensions restrictions)
The initial version of the app can take a local crx or download it from a url, and zip it into xpi format with required parameters for use in Firefox.