Services/Sync/WEP/109
WEP 109 - Addon Sync
- Champions: Anant Narayanan <anant at mozilla dot com>
- Status: Draft
- Created: 07 Sep 2009
- Reference Implementation: None
- WEP Index
Introduction
Weave Sync should support synchronization of Addons. In this WEP, we describe a particular way in which this may be implemented.
Implementation
For our initial prototype, we will simply synchronize a list of Addons as a single WBO with a fixed GUID (say, "ADDONS"). The payload of the WBO will be an array of objects, each object storing the addon guid, version and clients on which it is installed. The object also contains an array of clients on which the addon must be present. An empty array means that the addon is to be installed on all clients. An example:
[ { "guid": "{340c2bbc-ce74-4362-90b5-7c26312808ef}", "clients": { "MyFennec": "0.6", // needs to be updated "MyFirefox": "0.7pre2" }, "allowed": [] // will be installed on all clients }, { "guid": "jetpack@labs.mozilla.com", "clients": { "MyFirefox": "0.5pre3" }, "allowed": ["MyFirefox"] // will not be installed on MyFennec } ]
The engine will override the default engine's reconcile method so that we may determine which addons are present on which clients and then take action on any differences: such as updating an addon, installing and addon etc.
Note that the existing implementation simply maintains the correct state of this WBO, but does not take any action on missing local addons etc.