AlbertPacino
Explorer
I've been making a large number of changes to Firefox's Extension Manager over the past week or so, basically rewriting the way Extensions are installed. These changes when complete will offer a lot of improvements for Extension developers. Here's a quick summary of what I'm doing:
* Currently you can only install Extensions and Themes into the extensions\ directory under bin\ and profile\, and the assumption that these are the only two Install Locations is made across the Extension Manager. My changes replace this boolean setting with configurable Install Locations. It will be possible to register additional Install Locations with the Category Manager for discovery by the Extension Manager. This means it will be possible to create special kinds of Install Locations that suit the needs of your XULRunner application, e.g. an Install Location object that represents a Windows Registry key with GUID to path mappings instead of the traditional containment relationship.
* You will be able to install extensions by simply dropping their XPIs into containment relationship Install Locations (e.g. drop foo.xpi into profile\extensions and have it be installed automatically on next start) - this should be a boon for quick setup.
* You will be able to install and uninstall Extensions by simply adding and removing their GUID folders from the Install Locations - if you add/remove an entry, the Extension system will notice the discrepancy on the next start and configure/remove the item.
* You will be able to "point" to extensions which you are hosting elsewhere using a cross platform text format which is basically a text file with a GUID name in the extensions directory with a path to the directory where the Extension actually lives (e.g. elsewhere on a NFS home dir)
* The system will be more robust about upgrades, file removal, etc, and the API a little saner.
At some point it would be nice to abandon the per-type roots in the RDF graph, and the RDF XML text storage format itself, but my patch is already over 300K and I don't want to tempt fate.
Source
* Currently you can only install Extensions and Themes into the extensions\ directory under bin\ and profile\, and the assumption that these are the only two Install Locations is made across the Extension Manager. My changes replace this boolean setting with configurable Install Locations. It will be possible to register additional Install Locations with the Category Manager for discovery by the Extension Manager. This means it will be possible to create special kinds of Install Locations that suit the needs of your XULRunner application, e.g. an Install Location object that represents a Windows Registry key with GUID to path mappings instead of the traditional containment relationship.
* You will be able to install extensions by simply dropping their XPIs into containment relationship Install Locations (e.g. drop foo.xpi into profile\extensions and have it be installed automatically on next start) - this should be a boon for quick setup.
* You will be able to install and uninstall Extensions by simply adding and removing their GUID folders from the Install Locations - if you add/remove an entry, the Extension system will notice the discrepancy on the next start and configure/remove the item.
* You will be able to "point" to extensions which you are hosting elsewhere using a cross platform text format which is basically a text file with a GUID name in the extensions directory with a path to the directory where the Extension actually lives (e.g. elsewhere on a NFS home dir)
* The system will be more robust about upgrades, file removal, etc, and the API a little saner.
At some point it would be nice to abandon the per-type roots in the RDF graph, and the RDF XML text storage format itself, but my patch is already over 300K and I don't want to tempt fate.
Source