Confirmed users, Bureaucrats and Sysops emeriti
812
edits
m (moved Labs/Weave/WEP/109 to Services/Sync/WEP/109) |
|||
(4 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
{{draft}} | {{draft}} | ||
== WEP | == WEP 109 - Addon Sync == | ||
*Champions: Anant Narayanan <anant at mozilla dot com> | *Champions: Anant Narayanan <anant at mozilla dot com> | ||
Line 15: | Line 15: | ||
=== Implementation === | === 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. An example: | 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}", | "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", | "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. |