Extension Manager:Future Work

Revision as of 16:30, 3 July 2008 by Mossop (talk | contribs)

These are ideas for the future. Priorities are P1-4, 1 being highest. Size is an estimate of the amount of work required, S/M/L.

Description Priority Size Owner Schedule
Sqlite storage

The current code uses an rdf backend for caching extenstion metadata and state. This should be converted to sqlite.

P1 L
Install add-ons without restart

We will probably have to restrict this some. So only installs, not upgrades and add-ons will have to be specially written to take advantage of it, expecting special signals to say they have been loaded after the normal startup.

P1 M
UI reorganisation

The current UI splits the different add-on types. But it is unclear to most users what the difference between then really is. The change suggested is to mostly unify the list.

P2 L
Drop XPInstall

XPInstall is currently used for downloading and certificate verification of xpi's. This functionality could be moved to the extension manager to remove complexity.

P2 S
Unified error logging

Extension authors have to look all over the place for errors relating to installation, component registration, overlays and templating. These could all be brought together into one place.

P2 S
Blocklist plugins by file version

We currently rely on plugin vendors including the plugin version in one of the name, filename or description of the plugin. On windows the dll also contains a version number that many vendors use, we should start reading this and make the blocklist able to match on it.

P2 S
Locale packs for add-ons

This would allow localisers to release a locale pack separately to the main add-on. This can help make localising add-ons an easier process since the main author has to do nothing but make sure the add-on is localisable.

P3 M
Split out the startup code

We can defer loading of the main component until it is really needed which for the majority of startups is never.

P3 M
Addon Conflict Resolution

When a dependency on another add-on exists we should be able to offer and download and install the dependencies automatically (presumably using AMO as a lookup for the dependencies)

P3 M
Sandboxing extension code

It would be nice to be able to sandbox certain extensions so they don't have certain privileges like writing to the local disk.

P3 ?
Multiple compatibility ranges per application

It is currently impossible to distribute a single add-on that is compatible with two different min/max version ranges of one application.

P4 S
Improve blocklist interaction with plugin host

The blocklist has to rescan and check every plugin whenever a new plugin is detected at the moment. Instead the plugin host should just ask the blocklist if the new plugin is blocked or not in the same way the extension manager does

P4 S
Better install/uninstall hooks

Fairly common request from add-on authors is to do things on install/uninstall. There are some existing hooks to handle this but they could be made easier to use.

P4 S
Replace install/update.rdf

RDF is painful to read and write. While it is not great that authors could have to learn something new, so long as we continued to support the rdf forms switching to something new would make new author's lives easier. Either a simple xml schema or json are likely candidates.

P4 S