Make WBORecord.uri, CryptoWrapper.encryption, PubKey.privateKeyUri, PrivKey.publicKeyUri as well as the CryptoMeta keyring keys relative URLs in the payload. As a result, all records now *must* know their URI.
Bump storage version from 2 to 3 to trigger reupload of all data and exclude older clients.
Check for both old and new class IDs and use the one that exists when wrapping. Also add FormTracker as the observer object so that its notify function is correctly called by nsHTMLFormElement.
--HG--
extra : rebase_source : 470430eaa643415e635836db3c38fb639a4e44b6
Wrap the createStatement calls to guard against missing guid columns and lazily add it.
--HG--
extra : rebase_source : c59a692c6ad08321835c75023b54f02e8d1964da
Write a FormWrapper that knows about GUIDs and get/sets them in moz_formhistory as needed. It lazily adds the columns on failure and lazily generates GUIDs for entries that are missing it. Don't eagerly create a sha1 formItem mapping -- don't create it at all, so empty syncs will be much faster too.
Add a component that notifies when satchel methods are getting called. The notifications come as "form-notifier" with JSON data of the function name, arguments, and type (before vs after).
Inline various _init calls and do super's init with <Super>.call(this, args..). Add various get/set sugar to those missing e.g., meta.keyring. Also simplify crypto record creation by setting cleartext in the parent.
--HG--
extra : rebase_source : 6c9a9f210f8f46ac338adb84188538e7353c9673
Use the log.logger.engine.* prefs to determine what the Store and Tracker should log with. This requires putting the same engine name on each Store/Tracker object, so there's some duplicate string values right now.
Switch pretty much all references to cleartext in modules/engines/ to just use the record. Also clean up some references to null cleartext to use deleted. The only reference to cleartext is to iterate over that hash in bookmarks.
Get rid of the QueryInterface and just use instanceof while copying the logic of nsFormHistory::Notify to avoid divergent logic until satchel provides a notification.
* some minor hacking of the login progress to improve performance
* expanded the application exit sync dialog to be a general modal sync dialog that will display whenever appropriate (e.g. during initial setup, on manual "sync now" requests, and on application exit)
* added a progress meter and status messages to the modal sync dialog to provide users with a better understanding of what's going on, and to assist in debugging
* added ability to cancel a modal sync request, including on application exit. when cancel is clicked on by the user, it will attempt to cancel the sync at the next opportunity (i.e. before the next sync engine is processed)