Services/Sync/WEP/109

From MozillaWiki
< Services‎ | Sync‎ | WEP(Redirected from Labs/Weave/WEP/109)
Jump to: navigation, search
Draft-template-image.png THIS PAGE IS A WORKING DRAFT Pencil-emoji U270F-gray.png
The page may be difficult to navigate, and some information on its subject might be incomplete and/or evolving rapidly.
If you have any questions or ideas, please add them as a new topic on the discussion page.

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.