Firefox/Projects/Extension Manager API: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
= Overview  =
__NOTOC__The Extension Manager has been extended repeatedly to add new features.
There is now large scope for cleanups and improvements with refactoring the core
code and APIs as well as integrating the other add-on types into a unified API
that the frontend can use to display the UI.


;Sprint lead: Mossop
=Status=
;Reviewers: Rob Strong, Shawn Wilsher, Benjamin Smedberg


;Description
* IN FLIGHT
:The Extension Manager has been extended repeatedly to add new features. There is now large scope for cleanups and improvements with refactoring the core code and APIs knowing what we know now.
* Implementation in progress in a user repository
* <onlyinclude>Most functionality complete, need to implement compatibility updates and installs from webpages</onlyinclude>


= Status =
=Stakeholders=
<onlyinclude>Basic management functionality is supported, working on implementing downloads and updates.</onlyinclude>


= Goals / Use Cases  =
* Project lead: Mossop
* Project members: Boriss, Unfocused
* Potential reviewers: sdwilsh, bsmedberg, robstrong
* QA contact: Tony Chung


* Primary goals
=Goals=
** Support a wider range of add-on types managed through the same API
** Allow application/extension developers to be able to easily query the state of installed items
** Make it easier for applications to replace the add-ons UI with their own implementation by making all necessary information available through the defined API
* Secondary goals
** Remove direct access to the datastore
** Simplify the internal code and speed up startup times
** Minimize the use of RDF throughout the backend to allow for easy replacement in the future
** Migrate from an RDF based datastore to an SQLite based datastore
** Remove extensions.cache
** Reduce the number of unnecessary restarts during startup


= Design  =
* Replace extensions.rdf with a sqlite based datastore
* Implement a new API for accessing all types of add-ons
* Implement a type of XPI extensions that can be installed without restarting
* Create a clean separation between the UI and the backend of the add-ons manager
* Lay the groundwork for supporting different types of install manifests in XPI extensions
* Lay the groundwork that will help us give startup performance improvements
* Reduce the number of unecessary EM restarts


The new API is proposed at [[Extension Manager:API Rewrite]]. Some of this work will assist in the implementation of [[Extension Manager:UI Update]].
=Non-Goals=


= Planning  =
* Improve startup time
* Make current XPI extensions install without restarts


== Target Release ==
=Timeline/Milestones=


Firefox.next. All of the initial work must ship before beta 1.
* 2009/10: [[Extension Manager:API Rewrite|API Design]] complete and reviewed
* 2010/03: Land on a project branch to monitor performance impact
* 2010/03: Land on trunk with near feature parity
* 2010/04: Complete feature parity and additional metadata


== References ==
=Delivery Requirements=


* {{Bug|461973}}
* Requires an add-on compatibility changing application version increment
* Requires messaging to add-on and application developers to explain how to switch to the new APIs
* Must be complete before the first beta of the target delivery vehicle
 
=Dependencies=
 
=Testing=
 
* Majority of tests will be xpcshell based with some mochichrome testing for ssl support.
* Existing add-ons manager unit tests will be replaced, ported or no longer applicable to the new API.
 
=Related Projects=
 
* [[Extension Manager:UI Update]] is the work to replace the frontend add-ons UI

Revision as of 17:34, 3 March 2010

The Extension Manager has been extended repeatedly to add new features. There is now large scope for cleanups and improvements with refactoring the core code and APIs as well as integrating the other add-on types into a unified API that the frontend can use to display the UI.

Status

  • IN FLIGHT
  • Implementation in progress in a user repository
  • Most functionality complete, need to implement compatibility updates and installs from webpages

Stakeholders

  • Project lead: Mossop
  • Project members: Boriss, Unfocused
  • Potential reviewers: sdwilsh, bsmedberg, robstrong
  • QA contact: Tony Chung

Goals

  • Replace extensions.rdf with a sqlite based datastore
  • Implement a new API for accessing all types of add-ons
  • Implement a type of XPI extensions that can be installed without restarting
  • Create a clean separation between the UI and the backend of the add-ons manager
  • Lay the groundwork for supporting different types of install manifests in XPI extensions
  • Lay the groundwork that will help us give startup performance improvements
  • Reduce the number of unecessary EM restarts

Non-Goals

  • Improve startup time
  • Make current XPI extensions install without restarts

Timeline/Milestones

  • 2009/10: API Design complete and reviewed
  • 2010/03: Land on a project branch to monitor performance impact
  • 2010/03: Land on trunk with near feature parity
  • 2010/04: Complete feature parity and additional metadata

Delivery Requirements

  • Requires an add-on compatibility changing application version increment
  • Requires messaging to add-on and application developers to explain how to switch to the new APIs
  • Must be complete before the first beta of the target delivery vehicle

Dependencies

Testing

  • Majority of tests will be xpcshell based with some mochichrome testing for ssl support.
  • Existing add-ons manager unit tests will be replaced, ported or no longer applicable to the new API.

Related Projects