Changes

Jump to: navigation, search

Services/Sync/Features/Addon Sync

330 bytes added, 23:13, 29 November 2011
more design details
;Sync will not synchronize non-XPI add-ons such as plugins, lightweight themes, and search engines. Sync will also not synchronize add-ons installed outside of the currently running profile.
|Feature functional spec=A syncGUID field has been added to the extensions SQLite database ({{bug|682027}}). All extensions now have a randomly-generated ID suitable for syncing.
To track changes, Sync has written a component outside of the add-ons engine called the "Add-ons Reconciler." This provides what the Add-on Manager does not: a persisted state of add-on changes and limited state. It installs itself as a listener for Add-on Manager events. When things changed, it records that change and updates it's own minimal copy of the global state. These changes are persisted to disk in a JSON file file in the profile directory. Periodically (at the top of a sync) the reconciler examines the state of the world and ensures it agrees with the Add-on Manager.
The add-ons engine subscribes to changes in the Add-on Reconciler to trigger instant sync.  At the beginning end of every sync, Sync asks the sync engine requests the reconciler to reconcile its state with delete data older than 7 days. This is for privacy reasons as well as to ensure the worldchange log doesn't grow without bound. ThenEven if the change log would grow unbounded, it sees all that has changed since is doubtful it would ever get so large to become unwieldy because the last sync and pushes out sync recordsnumber of add-on change events (install, uninstall, enable, as appropriatedisable) isn't very high (maybe a few a week).
|Feature ux design=UX has stated that there will be no new UX for this feature. Individual add-ons may trigger UX when they are modified, but there is nothing we can do about that.
|Feature security review=The feature follows the same security model as other sync engines: add-on records are encrypted using the Sync Key and the IDs for each add-on are randomly generated.
Canmove, confirm
409
edits

Navigation menu