* Added a "Set Up Weave..." status message which is determined by Status.login states
* The "Set Up Weave..." message opens the pref window directly instead of showing the menu
* Added an additional error state for NO_PASSPHRASE
* Added checks to onStartup to check some status (no username/password/passphrase) for when autoconnect=false
* When the prefpane is opened and there's an error, it will open to the correct page so that can be corrected
* If using a custom server, that will be reflected when shown that page in the prefpane
Save the time the tracker adds a new changed id and use that to compare the age of the record on the server vs the age of the local change to decide if it's server wins or client wins. Fix up various direct uses of changedIDs to use the API and make the save-to-disk lazy to avoid excessive writes. Add a test to make sure addChangedID only increases in time.
Get rid of STATUS_DELAYED and initialize Weave listeners, etc immediately. At the end of onStartup, wait a little bit to let sessionstore restore tabs and then count how many busy tabs to delay autoconnecting to avoid doing network while tabs are doing network.
* Adds an option to the manage account to change sync option.
* Changes "start over" to "use a different account".
* Hides the "start over" button on the sync options page when not running through the whole process.
* Adds a prompt when starting over (which fixes bug 524186).
Add an engines object to meta/global to track version and syncID for each engine. If the server is outdated, wipe the data and set a new version and syncID. If the client is oudated, ask for an upgrade. Differing syncIDs cause a reupload. All engines are right now the default version 1.
Get rid of get/setInfo on ClientEngine and ClientStore and expose functions to read/modify client data: stats, clearCommands, sendCommand. Also expose the local client information as local[ID,Name,Type,Commands] and rework the storage to use these instead of trying to keep the JS object clients entry in sync with prefs, etc. Update users of the old interface (service/tabs/chrome) to use the new local*. Set the client type based on app id instead of from each app's overlay.
Move back to a model where multiple client versions can read the same data of the same storageVersion. The only time meta/global is written is on a freshStart/server wipe. Initialize the version to 1.2pre1.1 so that individual storage-incompatible changes can bump the value. Old versions are strings, so estimate with a parseFloat, but future versions will be integers.
Include the URI on success/fail requests and only trace log the onStartRequest. Switch various debug messages to trace and remove importing Log4Moz in fx-weave-overlay and generic-change. Drop the rootLogger to Debug to not log trace messages from unpreffed loggers.
Remove special casing of tabs prefs and remove tabs.backup to simplify the UI logic. Also remove dynamically enabling/disabling based on number of clients. For Fennec, show a notification about recent tabs need syncing.
Have importing service.js trigger startup instead of only starting up from Weave.js, which now is used as a backup kickstarter. Only call import(service.js) when necessary from various Fennec files.
Make sure username is always lowercase so that pubkey uri, storage uri, etc. are all the same no matter how the user logged in. Server needs to be wiped to make sure existing keys with other casing are removed.
Avoid concurrent key generation by updating meta/global immediately after resetting the client and have wipeServer not delete the meta collection. Also on detecting a syncid mismatch, sleep to allow remote keypair to be uploaded, and don't force a mismatch on upgrade.