Commit Graph

340 Commits

Author SHA1 Message Date
Edward Lee
2b33ab565b Bug 504177 - Don't block the UI when syncing up/down
Sync.sleep(0) to let the main thread do UI, etc. after every record encrypt or decrypt.
2009-07-14 14:01:26 -07:00
Edward Lee
84c52a6411 merge weave. resolve addition of kSpecialIds to bookmarks.js near removal of Async.sugar. 2009-06-23 22:34:57 -07:00
Edward Lee
ad5f01ba04 Bug 493816 - Timestamps need to be saved as string prefs
Internally store .lastSync as a string but keep exposing set/getters as float values. parseFloat takes both strings and numbers and gives a number.

--HG--
extra : rebase_source : b657dd3f732b9f3b3b0ef208ee53e799aa87d2c6
2009-06-16 17:22:59 -07:00
Edward Lee
4084603da5 Remove async.js and wrap.js and remove remaining references to Async.sugar, etc. 2009-06-06 18:24:30 -05:00
Edward Lee
1b781dda8c Remove Async.sugar from engines.js. 2009-06-05 15:34:39 -07:00
Edward Lee
48b4ac18ef Engine_wipeServer: async -> sync. SyncEngine__wipeServer: async/yield -> sync. 2009-06-05 15:34:37 -07:00
Edward Lee
f9aeec8b2c Engine_wipeClient: async -> sync. Engine__wipeClient: async/yield -> sync. 2009-06-05 15:34:35 -07:00
Edward Lee
3d3f786723 Engine_resetClient: async -> sync. SyncEngine__resetClient: async/yield -> sync. 2009-06-05 15:34:34 -07:00
Edward Lee
81f7652b56 Engine_sync: async -> sync. SyncEngine__sync: async/yield -> sync. 2009-06-05 15:34:32 -07:00
Edward Lee
4f22e547b2 Temporarily convert _notify to _notifyAsync and add a Utils.notify. 2009-06-05 15:34:23 -07:00
Edward Lee
563c0a0fd0 SyncEngine__processIncoming: async/yield -> sync. 2009-06-05 00:39:35 -07:00
Edward Lee
e7a503025a CollectionIterator_next: async + async/yield -> sync. 2009-06-05 00:38:23 -07:00
Edward Lee
3a4f2ca0ee Store_applyIncoming, SyncEngine__applyIncoming: async + async/yield -> sync. 2009-06-05 00:36:11 -07:00
Edward Lee
fce5aa36de SyncEngine__syncStartup, SyncEngine__uploadOutgoing, SyncEngine__syncFinish all async/yield -> sync. 2009-06-04 23:48:27 -07:00
Edward Lee
228f2e2568 CryptoWrapper_decrypt: async + async/yield -> sync. Fix up bookmark/client decrypt. 2009-06-04 19:06:57 -07:00
Edward Lee
7adf2ffa78 CryptoWrapper_encrypt: async + async/yield -> sync. 2009-06-04 17:58:37 -07:00
Edward Lee
a9de56fef0 CryptoMeta_addUnwrappedKey: async + async/yield -> sync. 2009-06-04 17:36:34 -07:00
Edward Lee
df16a63edb PubKeyManager_getDefaultKey: async + async/yield -> sync. 2009-06-04 17:04:51 -07:00
Edward Lee
ce37486d9c RecordMgr_get: async + async/yield -> sync. 2009-06-04 16:50:57 -07:00
Edward Lee
68ce1e4224 Change SyncEngine._reconcile to not be async/yield. 2009-06-04 14:18:04 -07:00
Edward Lee
1134960b32 Fix Resource.* call sites used for wiping the server and initial sync (+ key gen upload) 2009-06-04 10:17:27 -07:00
Edward Lee
428d54a14a Change Resource.get() to be sync (no callback) and fix up call sites used for login + sync now. 2009-06-04 10:16:07 -07:00
Edward Lee
232befb843 Bug 493256 - Reconcile doesn't handle removed items correctly. r=thunder
Have engines check if the deleted flag is the same for _isEqual.
2009-05-15 13:18:16 -05:00
Edward Lee
665e488e28 Bug 493001 - Dynamically generate weave prefs engine list based on registered engines
Remove existing hardcoded engine list + prefs and build checkboxes based on registered engines. Engines that give null for enabled (instead of true/false) are considered disabled. Update base Engine enabled get/set to give null and allow setting.
2009-05-14 11:38:15 -05:00
Dan Mills
76438f3876 skip getting meta records for records already in the meta list 2009-04-08 18:08:45 -07:00
Edward Lee
a7b212ab0b Bug 486810 - Engines (and their trackers) are created with every new window. r=thunder
Register the built-in engines on service start-up instead of from the overlay, and have Engines.register check if the engine has already been registered.
2009-04-08 14:39:14 -05:00
Edward Lee
75bacf714f Bug 487308 - Allow registering of an array of engines
Import engines to the Weave global object and use them to register engines, which checks if the arg is an array. To support handling of errors (unused), the engine is returned on register failure.
2009-04-07 16:45:41 -05:00
Edward Lee
cebb90b5bc Add a Utils.isArray and use it 2009-04-07 16:45:29 -05:00
Edward Lee
3993035a59 Bug 482670 - WBORecord should implement a .deleted property
Expose a .deleted property that engines can set to true to store an even thinner deleted payload (empty string "" instead of "[null]") on the server. Handle deserializing of deleted records by setting the property. Note: Engines must set their payloads to something JSON-able if it's not a delete record.
2009-04-03 12:38:47 -05:00
Edward Lee
4f6ebe6be5 Bug 481741 - Switch to JSON from nsIJSON 2009-03-31 14:09:38 -05:00
Edward Lee
75994bc68f Bug 482898 - Allow an optional array of engines for wipeRemote, wipeServer, resetClient, etc.. r=thunder 2009-03-20 00:13:16 -07:00
Edward Lee
e2f30efcf4 self.cb not this.cb for engine._wipeClient 2009-03-11 14:35:23 -05:00
Dan Mills
7b9eedde66 Bug 478327: Send minimal '[null]' payload for deleted records 2009-03-11 01:40:04 -07:00
Edward Lee
edda1db597 Bug 480457 - Expose a resetClient API for weave service and engines. r=thunder 2009-02-26 22:36:14 -08:00
Dan Mills
01ab4aa284 add some trace-level debugging to reconciler; ignore old (changed) IDs while reconciling 2009-03-03 01:29:35 -08:00
Dan Mills
3e1235a9e5 Switch away from __defineGetter__ due to bug 481104; explicitly cache logins in password engine; whitespace fixes 2009-03-02 18:55:26 -08:00
Anant Narayanan
0f6fdde06c Remove getter that fixes the 'two-store' problem 2009-03-03 01:15:48 +01:00
Dan Mills
bfa22eed1a Bug 480461: skip items that cannot be decrypted 2009-02-26 17:31:06 -08:00
Dan Mills
50621a1889 remove unused observer service getter 2009-02-26 13:52:12 -08:00
Dan Mills
edcaabd226 reset lastSync pref before setting it, as some clients have mismatched types saved 2009-02-23 19:33:40 -08:00
Dan Mills
8c671b69c9 Wrap.notify now takes the topic prefix as an argument, instead of requiring this._osPrefix to be set; use Observers.js in several places (sync.js, status.js, etc); some event topics have changed, beware; fix up status window, now prints some useful status as sync progresses 2009-02-22 00:04:58 -08:00
Dan Mills
1490d0c250 shorten engine logging pref names, set defaults for them 2009-02-20 01:51:20 -08:00
Dan Mills
d0e9169992 pass the cryptoMetaURL to the store's createRecord 2009-02-19 00:36:55 -08:00
Dan Mills
1883c83218 make sure to only save the last sync timestamp as a number 2009-02-18 20:17:30 -08:00
Dan Mills
a6a7141691 add a method for resetting the engine's lastSync pref 2009-02-17 13:20:02 -08:00
Dan Mills
a30d82e53d add '-engine' to engine name in observer notifications 2009-02-11 21:51:24 -08:00
Dan Mills
57c5368d7a remove sm-weave-proxy01 hack 2009-02-11 13:47:51 -08:00
Dan Mills
aafa72814f multi-cluster support; use new 'newer' flag instead of 'modified' for collection searches 2009-02-10 00:57:16 -08:00
Dan Mills
03d78b3d84 set record IDs inside the store; fix bookmarks tracker, it was ignoring change events (e.g., changed title and such) 2009-01-27 16:54:54 -08:00
Dan Mills
a47fcda5b1 only url-encode weave IDs when constructing a URL with them 2009-01-27 16:36:00 -08:00
Dan Mills
a3d9640e3c Make records not extend Resource, instead they have a serialize() method that can be used to create a Resource for uploading if necessary.
Use global service instances under Svc.*
Consolidate various record managers (caches/convenience factories) to extend the same base object
Log exceptions caught by notify wrapper
2009-01-27 13:35:10 -08:00
Dan Mills
84340dcdc2 cast modified timestamp to an int if it's a string 2009-01-21 19:02:38 -08:00
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
e823363952 Merged 2009-01-15 14:06:00 -08:00
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
cd797f05a7 Added a method to historyStore called tempTableExists which does a SELECT (rather than using tableExists) to correctly tell whether a temp table is there or not, so that historyEngine will work correctly on both Fennec and Firefox (See bug 472963) 2009-01-15 14:05:50 -08:00
Dan Mills
67f99f74cd add some extra log info to engine; have tracker ignore all changes when applying a change to prevent the tracker from generating new guids for new items before the store has a chance to set the right one 2009-01-14 22:01:04 -08:00
Dan Mills
445916b2e6 ignore/unignore specific weave IDs instead of a blanket enable/disable of the tracker during sync. 2009-01-13 14:43:21 -08:00
Dan Mills
cf5c78dfcf skip part of reconciliation for incoming deleted records 2009-01-08 21:33:37 -08:00
Dan Mills
c3dc0195a6 fail recordLike if either record is null (deleted) 2009-01-07 13:05:05 -08:00
Dan Mills
ff240dd3ce add clients sync (list of clients with names and types); make it simpler to create Engine subclasses; remove the 2nd 'authenticator' parameter for Resources; resetServer is now wipeServer; consider 0 an invalid place ID (fixes bug when calculating item depths); add a Svc global exported from utils.js where commonly used services can live 2009-01-06 13:54:18 -08:00
Dan Mills
34a114606d fix depth/index record generation 2009-01-02 21:13:32 -08:00
Dan Mills
cc914050b2 drop _isEqual debug statements to trace level 2009-01-02 17:35:47 -08:00
Dan Mills
41bd8b02b9 consider sortindex when checking if a remote record is the same as a local one 2009-01-02 17:27:45 -08:00
Dan Mills
4cb774d408 remove extra debug code 2009-01-02 16:17:36 -08:00
Dan Mills
2754039971 fix/further simplify reconciliation 2009-01-02 15:51:35 -08:00
Dan Mills
62c5aa360c remove 'outgoing' record cache (generate outgoing records at send time); clear the store cache and force a GC after reconciliation; push depth+index (metadata) records after regular (full) records; simplify + better comment reconciliation function; fix low mem check 2009-01-02 13:51:38 -08:00
Dan Mills
d04e52f8f5 typo fix 2008-12-30 23:56:53 -08:00
Dan Mills
5e3ac9586e add a generic cache class for storing records during reconciliation. cache has 100 item limit, and is cleared before and after reconciliation so the OS can reclaim memory after GC 2008-12-30 23:52:20 -08:00
Dan Mills
380b614133 make engine keep less records in memory by limiting the outgoing queue to a maximum of 100 records, and fetch the rest from the store each time 2008-12-29 23:28:17 -08:00
Dan Mills
6b260498e0 switch to generating individual bookmark records directly from the places store, without using a cache (to improve memory performance); create objects for bookmark types; temporarily disable history sync 2008-12-28 19:59:44 -08:00
Dan Mills
8a57024bf8 force GC, makes sync of many items possible on fennec 2008-12-26 21:49:17 -08:00
Dan Mills
aff056726e change serverURL to use 0.3 url schema 2008-12-23 13:51:30 -08:00
Dan Mills
62a45ad0ab Various engine/bookmark changes:
* Rely on the server to sort incoming records, remove all sorting code client-side.
* Streamline sync to be able to process incoming records one at a time, as soon as they are downloaded.  This changes reconciliation to be able to process a single incoming record.
* Engine base class will automatically convert parentid, depth, and sortindex into toplevel WBO objects.  This is good for now but kinda broken, engine subclasses should really be generating WBO records themselves.
* Since index is now a toplevel WBO property, there is no need for the bookmarks sync code to subclass recordLike.
* Refactor bookmarks store to be a little cleaner and work directly with records instead of "commands".
2008-12-23 11:30:31 -08:00
Dan Mills
08512b99a5 change engine to process (download, reconcile, apply changes) incoming records one by one 2008-12-19 11:48:09 -08:00
Dan Mills
d55df6a1f4 implement the awe (or tears) inducing places-style sql queries -- history sync works pretty well now 2008-12-18 22:39:32 -08:00
Dan Mills
1e7370ba2d don't stop applying changes when one fails to do so 2008-12-12 13:53:48 -08:00
Dan Mills
3ef1c0d9b1 enable history sync (not working yet) 2008-12-09 12:26:14 -08:00
Dan Mills
f2e4594263 make changeItemID exclusively a store method 2008-12-08 13:21:25 -08:00
Dan Mills
9070a62677 remove sync cores, they are no longer used; remove sharing code from bookmarks (we can bring it back when we need it again, needs work); have the engine give hints to the store about when to wrap all items and cache them (to make subsequent calls to wrap one item fast); move serializeItem/getAllIDs into the store 2008-12-08 09:53:32 -08:00
Dan Mills
c595ceeb1b clear changed IDs before adding all current ones in first-sync case; edit the ID list directly instead of enabling/disabling the tracker 2008-12-06 00:08:54 -08:00
Dan Mills
f1332902ba parentGUID -> parentid 2008-12-05 03:36:27 -08:00
Dan Mills
37a62b2479 re-enable tracker in the first-sync case just to add all the guids; add some debugging messages; when reconciling throw out records which are identical on the client and server (even if we thought they had changed) 2008-12-05 03:28:17 -08:00
Dan Mills
fd7d30a288 oops, always disable tracker during sync 2008-12-05 00:58:25 -08:00
Dan Mills
95b8e357b2 disable tracker for entire sync run. make sure tracker is re-enabled at the end 2008-12-05 00:55:19 -08:00
Dan Mills
c1a443df70 use callbacks instead of snapshot diffs to figure out what changes to send to the server 2008-12-05 00:39:54 -08:00
Dan Mills
a67aabffa4 add logic to detect when the same item is in both incoming & outgoing queues, but with different IDs - change the local ID in that case 2008-11-27 00:25:28 +09:00
Dan Mills
c221d2ea8e decrypt incoming items all in one go so as to sort them by index (which is inside the payload); don't attempt to change the index of an item if we're also changing its folder; only change index/parent if it's different from current value 2008-11-26 14:07:18 +09:00
Dan Mills
63f0615496 comment depth function for clarity, remove incorrect warning 2008-11-25 16:37:19 +09:00
Dan Mills
82dda0e367 sort incoming records by depth, so that folders are created before their containing items 2008-11-25 16:12:00 +09:00
Dan Mills
fbbdb6c964 use the new modified property returned after a server POST 2008-11-25 14:48:22 +09:00
Dan Mills
e5c9923591 add some debug chatter 2008-11-25 01:48:38 +09:00
Dan Mills
409940f099 clean up sync function, get last timestamp properly from post result, save correct snapshot at the end, only attempt to post changes to server if there are any changes at all 2008-11-25 01:04:14 +09:00
Dan Mills
5b84631f1a enable batch upload, yay! 2008-11-20 10:38:53 +09:00
Dan Mills
48b9bd885e more NewEngine impl 2008-11-20 09:20:25 +09:00
Dan Mills
b12787f2f2 crypto changes: private keys get their own iv and salt, crypto meta records get a separate iv and no salt. various fixes in crypto code and other wbo related objects. fix crypto tests to match. 2008-11-08 02:00:33 -08:00
Dan Mills
7091144051 make sure records always have a data field that represents their state (e.g. for serialization); add some pki routines (createKeypair); add incoming/outgoing queue to NewEngine 2008-11-06 23:23:35 -08:00
Dan Mills
8d20157eb8 add a temp NewEngine class that will talk to the 0.3 server 2008-11-06 19:18:07 -08:00
Dan Mills
6151afb26d fix log4moz calls (new api), fix module imports for renamed modules 2008-11-03 15:00:38 -08:00
Dan Mills
1f877adb30 move some code from the engine to remote.js; rename FileEngine to BlobEngine (since it doesn't actually sync complete files); clean up SyncEngine's sync method 2008-08-08 14:42:57 -07:00
Dan Mills
010357f05a add a hack that supresses a strange error (this._remote.status.data is null, even though it was downloaded correctly) 2008-07-31 00:20:55 -07:00
Dan Mills
6b50b61a62 fix snapshot typos in SyncEngine 2008-07-30 22:52:49 -07:00
Dan Mills
0102f2cd60 more tab sync fixes, only disposing is left to fix; also allow the notify wrapper to pass along an optional data payload 2008-07-30 21:58:13 -07:00
Dan Mills
eef307467c use client GUID (from ClientData) for FileEngine 2008-07-29 18:38:58 -07:00
Dan Mills
a81ac5e9da Remote.put doesn't require the data arg anymore 2008-07-29 17:35:10 -07:00
Dan Mills
7b63f59feb get crypto working with FileEngine 2008-07-29 12:04:41 -07:00
Dan Mills
acc0a427fd initial try to get crypto working with FileEngine 2008-07-29 11:03:06 -07:00
Dan Mills
58affe8131 Implement FileEngine 2008-07-25 17:02:43 -07:00
Dan Mills
c678010dcf split Engine into SyncEngine and FileEngine 2008-07-25 01:06:23 -07:00
Dan Mills
9ca663413e Fix network timeouts, make them take into account progress; re-upload new snapshot after 25 deltas 2008-07-21 18:23:51 -07:00
Chris Beard
e9ac166a41 * major revision to the login dialog to be more robust, adding error handling, styling and a help link
* 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)
2008-07-09 17:17:24 -07:00
Dan Mills
80417871c4 merge upstream changes 2008-06-29 07:07:11 -07:00
Dan Mills
e03543007a make resetguids async 2008-06-29 07:00:53 -07:00
Anant Narayanan
089c1c0f42 General restructure for performance improvements (bug 441907, r=thunder) 2008-06-27 20:16:43 -07:00
Dan Mills
c0471ca320 make log messages that print raw engine json be trace messages 2008-06-27 14:21:54 -07:00
Atul Varma
37225f431c Changed AsyncException so that it dynamically subclasses the exception it's wrapping, and adds an 'asyncStack' property to allow access to the asynchronous call stack. This, along with my previous few commits, makes the processing of stack traces in our code much more streamlined, and also allows our debugging output to be more informative, as stack information is now logged from the point at which an exception was thrown, rather than the point at which it was caught.
Also renamed some things in async.js to be more descriptive and easier-to-understand, albeit a bit more verbose.
2008-06-25 04:43:07 -07:00
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
2158cdf9c4 Merged 2008-06-24 13:41:25 -07:00
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
c4fa84f683 Merged 2008-06-24 13:41:12 -07:00
Dan Mills
e2fc25dbfa Store each delta as a separate file on the server 2008-06-24 12:33:27 -07:00
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
ed99f7cb53 Make the stop-sharing-data command work 2008-06-23 18:23:08 -07:00
Justin Dolske
6ed3755104 Bug 433949 - Use WeaveCrypto component (NSS) instead of OpenSSL 2008-06-23 16:23:57 -07:00
Atul Varma
4c78f8d170 Improved test_passwords so that it syncs, re-syncs, adds a new user, and re-syncs again.
Fixed a strict warning in engines.js.
2008-06-20 14:22:06 -07:00
Dan Mills
0c3a240876 make RemoteStore a but more Store-like (wrap, wipe methods); fix a missing yield 2008-06-17 18:03:02 +09:00
Dan Mills
f8a841ee5e move more remote-interaction code into RemoteStore (and out of Engine) 2008-06-17 01:04:23 +09:00
Dan Mills
f74b9f910f catch 404s from initSession and do an initial upload; fix some bugs (missing yields, references to Engine properties) in RemoteStore.initialize 2008-06-16 00:21:44 +09:00
Dan Mills
a8ad7d2804 merge upstream changes 2008-06-15 13:42:10 +09:00
Dan Mills
049ecf1de3 Move remote init code ('fullUpload') into RemoteStore; make RemoteStore hold an Engine object (tightly coupling them); make the server prefix and identity properties of Engine public 2008-06-14 17:07:06 +09:00
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
b462aad4a5 Merged changes. 2008-06-12 14:30:46 -07:00
Myk Melez
0a15090c8c bug 437529: yield after starting to put the status file to the server so we don't finalize the sync until the PUT request completes 2008-06-11 17:44:08 -07:00
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
5459e1733a Resolved merging conflicts to service.js. 2008-06-11 11:54:44 -07:00
Dan Mills
5ca3a1eb7f merge upstream changes 2008-06-11 23:31:28 +09:00
Myk Melez
0f8b279e6e give Engine a public getter for its snapshot that TabTracker can access when generating a sync urgency score 2008-06-11 00:03:28 -07:00
Dan Mills
de1d1acb26 Various changes:
Engine/RemoteStore:
* Move code to make the engine remote directory into RemoteStore.
* Fix initSession call in Engine to properly use callback / call yield.
* Do not check '_getServerData' return status in _sync, we will use exceptions from RemoteStore instead.
* Move code to push a new delta into RemoteStore (appendDelta()).  Currently comments out code that forces a re-upload in cases where the server (engine) format version was different.  We may add this back later into RemoteStore (?).
* Note that this patch also removes the 'this._encryptionChanged' conditional, which I believe is currently useless (we never set it).
Service:
* When wiping the server (due to a server version mismatch), skip .htaccess files, since they are usually not user-modifiable.
2008-06-11 11:12:04 +09:00
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
b22dd7428c Fixed a couple of minor bugs that were preventing bookmark share from starting (like, i was skipping enabled engines instead of disabled engines... duhh) 2008-06-09 18:44:13 -07:00
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
dfdff82d82 The folder annotation for outgoing shared folders is now a string containing the username of the person the folder is being shared with. Also moved to using const strings in bookmark-menu-overlay.js. 2008-06-09 12:12:51 -07:00
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
473352178e Resolved conflicts with Chris's changes (to use the username, unhashed, as the name of the server-side sharing directory) 2008-06-06 17:43:15 -07:00
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
3db8dcb84c Moved _createShare and _share() from engines.js to BookmarkEngine class in engines/bookmarks.js. The identity of the folder to be shared is now passed from the share dialog box (share.xul) into BookmarkEngine._share(). 2008-06-06 17:33:44 -07:00
chris@h-194.office.mozilla.org
d7c750f0f9 - this check in will break everyone temporarily, as it involves the changes necessary to shift us from sha1(email) to usernames, and to enable sharing on the server.
- we are also changing the default preferences on the trunk to point to the new staging server at https://sm-labs01.mozilla.org:81 that has been modified to support usernames
- everyone will need to create a new account and this will be streamlined within the startup function, which will now kick off on first run (we'll check in the updated setup wizard shortly)
- this checkin also cleans up a number of strings
2008-06-06 14:18:50 -07:00
Myk Melez
f096ecbbf4 bug 437523: fix NS_ERROR_FAILURE on nsIJSON.decode in JsonFilter_afterGET 2008-06-05 16:25:55 -07:00
Dan Mills
b32b7d3549 merge upstream changes 2008-06-05 23:11:20 +09:00
Dan Mills
c2081e7fb9 create objects for the various server resources (these will later abstract away the actual resources); fix a bug where we were reversing the order of resource filters on every GET request 2008-06-05 16:17:32 +09:00
Atul Varma
d8420aaf50 Minor js2-mode warning fixes. 2008-06-03 15:14:27 -07:00
Atul Varma
b74958a214 Moved all tab-syncing code to modules/engines/tabsjs. 2008-06-03 14:45:53 -07:00
Atul Varma
daf3be7564 Moved all form-syncing code into modules/engines/forms.js. 2008-06-03 14:20:51 -07:00
Atul Varma
1e0a1d1e06 Moved all password-syncing code into modules/engines/passwords.js. 2008-06-03 14:08:53 -07:00
Atul Varma
e2ce660c53 Moved all history-related functionality into modules/engines/history.js. 2008-06-03 13:56:16 -07:00
Atul Varma
f365f924cf Re-removed cookie-related changes that were accidentally re-added by c1a58b24679c and/or 5a49daf87c94.
Also moved all bookmark syncing logic into modules/engines/bookmarks.js.
2008-06-03 12:38:48 -07:00
Myk Melez
07ba8ea83e bug 434817: sync tabs 2008-06-03 11:32:59 -07:00
Myk Melez
2d0bcb7a9b minor typo fixes 2008-06-02 15:24:52 -07:00
Dan Mills
5eac28e81c change remote store to keep track of identity names/aliases and fetch the objects from the id manager 2008-06-02 11:10:11 +09:00
Dan Mills
2daecc268e move json and crypto into remote resource 'filters', so the engine doesn't have to explicitly encode/decode anything. note--known regression: filters will not use the encryption algorithm in the status file 2008-05-30 20:43:55 -07:00
Dan Mills
88bafd3245 Add and start using an object to represent a remote resource (file), and a server object to hold them. Resources will attempt to retry network operations if they fail. 2008-05-28 20:11:39 -07:00
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
c8b1c91b51 Created a cookie tracker in trackers.js, and a test for it in tests/unit/test_cookie_store.js. 2008-05-27 09:44:26 -07:00
Dan Mills
fe48398743 don't attempt to get a symkey if encryption is set to 'none' 2008-05-23 19:57:38 -07:00
Dan Mills
cb84d724f5 regenerate the engine id when the engine's pbe id changes 2008-05-23 19:47:25 -07:00
Atul Varma
ba3e131c29 Fixed a variety of style issues and minor warnings raised by js2-mode. 2008-05-23 11:05:42 -07:00
Anant Narayanan
45c306c019 Add tracking support to FormsEngine. Bug #435319, r=thunder 2008-05-23 09:29:26 -07:00
Anant Narayanan
226ed028e3 Tracking support for HistoryEngine. Bug #435321, r=thunder 2008-05-22 18:37:24 -07:00
Anant Narayanan
53d8c30531 Add support for engine 'scores'. Bug #434812, r=thunder 2008-05-22 15:58:29 -07:00
Anant Narayanan
36482f8bef Sync form data: bug #434818, r=thunder 2008-05-22 15:36:44 -07:00
Justin Dolske
8df51016ac Bug 433762 – Sync stored passwords. r=thunder 2008-05-21 18:09:19 -07:00
Anant Narayanan
d0ee5b17d4 Allow login & sync when encryption is off 2008-05-21 16:28:23 -07:00
Dan Mills
2c39623eab DAV: separate the root url of the DAV repository from the default prefix for all operations (i.e., the user's subdirectory) 2008-05-15 18:08:13 -07:00
Dan Mills
6670eb2948 engines now get the pbe identity directly from the identity manager; engines now know their 'enabled' status (pref); main service syncs *all* registered (enabled) engines 2008-04-15 17:21:34 -07:00
Dan Mills
5a2d0451db add engine registration service; use global id service in service.js 2008-04-14 18:53:35 -07:00
Dan Mills
edd4329c4a rethrow exception when applyCommands fails 2008-04-03 17:16:22 -07:00
Dan Mills
d1bd5e5aaa don't fail on invalid server deltas which don't apply to the local snapshot; wipe the local snapshot instead 2008-04-02 00:00:24 -07:00
jono@jono-gibbon-laptop
b405d397ce Fixed a couple of missing symbol exports that were stopping CookieEngine from being able to be instantiated. 2008-04-01 17:32:14 -07:00
jono@jono-gibbon-laptop
640267d614 Merged changes and resolved conflicts between my cookie stuff and r282. 2008-04-01 14:46:29 -07:00
Dan Mills
a5bb6bf61f [mostly] beat login dialog into submission; use DAV singleton instead of making a new DAVCollection in service.js; split up checks from login into their own functions, call them on sync(); check we are logged in before syncing 2008-03-31 07:20:09 -07:00
Dan Mills
eaca70f4d9 add status notification to sharing dialog; fix async generators in the case where an async method is missing a yield (better error, continue execution in parent); add guts of demo sharing code to engine & store (for bookmarks, with some spillage) 2008-03-28 03:25:51 -07:00
Dan Mills
ebf0b6a973 make applyCommands asynchronous 2008-03-26 23:11:15 -07:00
Dan Mills
24ba577b6f improve async generator logging; don't call done() on StopIteration when we already have a timer set (it means the generator just 'bottomed out' after calling done()); make XHRs be synchronous (blocking) - temporarily; fix up sharing code (adding to the keyring) 2008-03-26 00:59:34 -07:00
Dan Mills
7ec09f1317 add sharing ui+backend code (not working yet); make engines less chatty when applying commands 2008-03-25 23:01:34 -07:00
Dan Mills
0a4be048f7 make service.js the main entry point from chrome/content; make the service be lazy-loaded; make crypto be lazy-loaded 2008-03-25 15:14:00 -07:00
Dan Mills
2739b301fc split up/simplify login functions; add a global (server-wide) storage version; wipe server for storage version upgrades 2008-03-19 18:42:12 -07:00
Dan Mills
16920cd2ae Various improvements:
* Logging improvements / default log levels tweaked.  Less chatty now.
  Ability to tweak log levels of individual loggers via prefs.
* Various crypto module fixes, specially for RSA.
* 'service' lock removed, reuses server lock now.  dav module supports
  temporarily blocking locks to simulate the 'service' lock (login()
  needs this, since dav is not configured at that time).
* PKI support: data encryption uses randomly-generated symmetric keys,
  which are then encrypted with RSA public keys and stored on the
  server.
2008-03-19 15:17:04 -07:00
jono@jono-gibbon-laptop
a2c4928bc5 My changes to weave to enable cookie synchronization. So far untested and still missing a thing or two. 2008-03-11 12:08:38 -05:00
Dan Mills
075381eca7 fix full (first) upload brokenness 2008-03-07 04:49:56 -08:00
Dan Mills
941dd24c3b Asynchronous generator helpers rework + PKI work
* Async helpers are in a module of their own now
* Async routines have simpler semantics now.  onComplete handlers are taken care of by the helpers.  Exceptions are bubbled up across nested asynchronous generators
* Stack traces are automatically logged for unhandled exceptions
* Async generators are now allowed to 'bottom out' (StopIteration is ignored) - this is configurable.
* RSA key generation fixes
* On login we now create an RSA keypair, encrypt the private one with PBE, and upload them to the server
* Log files are now limited to 2MB (down from 5)
2008-03-07 01:56:36 -08:00
Dan Mills
c1f8acb964 switch to nsIJSON for JSON parsing and output. add a deepCopy function instead of using eval(uneval()). make *sure* to read and write UTF-8 to files. bump version 2008-03-05 00:00:56 -08:00
Dan Mills
d6b5a9fc29 put utility functions in an object to avoid namespace pollution 2008-02-13 14:30:44 -08:00
Dan Mills
d4392ac825 load all modules directly from load-weave.js to get around bug 408412; fix uses of |let| not directly within a block 2008-01-07 16:28:57 -08:00
Dan Mills
23affe6333 Bug 409908: don't decrypt cleartext. Also, fix broken checkStatus calls when resetting server data. 2007-12-28 16:33:09 -08:00
Dan Mills
2883ed0621 Make {en,de}cryption asynchronous so as to not block the UI; fix 'xxxtea' typos (it's xxtea); fix auth header suppression 2007-12-26 17:40:46 -08:00
Dan Mills
79688a1c16 Pull xxxtea code into modules/; fix passphrase bug in the login dialog 2007-12-26 16:10:23 -08:00
Dan Mills
21f147b7bb limit history sync to the last 500 items; load snapshots from the right directory in the profile 2007-12-21 16:07:42 -08:00
Dan Mills
2cc8662f0f rename 'bookmarks' events to be weave events; add service-level events in addition to engine-specific ones (where appropriate) 2007-12-19 17:37:01 -08:00
Dan Mills
6782f99ad3 login fixes; history sync fixes; make reset client actually delete all client data (useful for testing and for syncing down server data - e.g. the restore case) 2007-12-19 13:24:31 -08:00
Dan Mills
516dfc2930 some more cleanup/refactoring; add history engine/core/store (history sync\!) 2007-12-14 18:07:25 -08:00
Dan Mills
f9df1f57a8 assume in loaded modules that the resource:// alias has already been added - remove all the templatey code to do that 2007-12-11 11:57:13 -08:00
Dan Mills
e44b47a493 more and more refactoring: split weave module into multiple files (finally!) 2007-12-10 21:38:53 -08:00