Atul Varma
6b20868829
Fixed a minor typo, though there's a better way to do the unary getter which Myk told me about; will probably substitute that soon.
2008-06-17 11:11:56 -07:00
Atul Varma
f9463209a2
Added a fixme/todo in the code.
2008-06-17 10:23:35 -07:00
Dan Mills
dec04b1bc3
merge upstream changes
2008-06-17 18:04:16 +09: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
5e07cb98d5
Don't allow re-entrance! Fail to lock when we already hold a lock.
2008-06-17 18:01:48 +09:00
Atul Varma
245e6492da
Fixed a strict warning in util.js.
2008-06-16 18:11:41 -07:00
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
43eec5b867
In the middle of trying to make createOutgoingShare work with Dan's changes (getSymKey having been moved to remote.js, etc.)
2008-06-16 17:52:24 -07:00
Dan Mills
5c196a641a
treat paths beginning with '/' as absolute
2008-06-17 09:51:02 +09:00
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
f6cc70889f
Trying to debug _createOutgoingShare...
2008-06-16 15:52:15 -07:00
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
6ce93ffd1d
Merged
2008-06-16 11:24:41 -07: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
561b27a92c
merge upstream changes
2008-06-14 17:10:40 +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
9805cdce23
Merged
2008-06-13 16:22:04 -07:00
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
835100b96d
Fixed some minor bugs -- the name of the incoming shared folder is parsed correctly, and xmppClient now catches bounce errors that were previously parsed as messages.
2008-06-13 16:20:43 -07:00
Atul Varma
92583fc5ff
Fixed an 'outstanding callbacks' warning and simplified the code a tiny bit.
2008-06-13 15:39:06 -07:00
Myk Melez
b12f3d03db
use nsIXMLHttpRequest::mozBackgroundRequest instead of DummyAuthProvider to suppress authentication dialogs and ensure XMLHttpRequests succeed even when the window that originated the request goes away
2008-06-13 13:08:36 -07:00
Dan Mills
589f3222eb
To avoid some async.js warnings: Turn some 'yield' calls into 'return' ones, and don't call 'self.cb' twice in a row when constructing event listeners for XHRs.
2008-06-13 15:49:18 +09:00
Dan Mills
9812ba557e
Make some 'debug' log calls into 'trace' ones. Use the frame formatter, which will remove long paths to extension dirs from the output. Don't warn about outstanding callbacks if we caught an exception from the generator.
2008-06-13 15:47:41 +09:00
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
5c8481de3d
Merged
2008-06-12 17:35:57 -07:00
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
c548d4b940
Made the initialization of the xmppClient an asynchronous call. This included modifying xmppClient.js so that connect() can be passed a callback function that will get called once the connection has succeeded or failed. For most of our purposes this is probably a better API than what we had before where you call waitForConnection() and it busy-waits until the connection has succeeded or failed.
2008-06-12 17:35:44 -07:00
Myk Melez
b4967c8831
work around XmlHttpRequest bug 317600 by pausing for a 0ms timeout before trying to log in
2008-06-12 16:23:59 -07:00
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
b462aad4a5
Merged changes.
2008-06-12 14:30:46 -07:00
Myk Melez
18d8e8fcd7
bug 410550: stop running scheduled sync when the user is not logged into weave
2008-06-12 12:36:58 -07:00
Atul Varma
9d32240087
Changed some of the debug() logging statements I added a few commits ago into trace() statemetns b/c they were drowning the log.
2008-06-12 12:00:19 -07:00
Myk Melez
f47209b9d2
only retrieve score once per engine when doing a scheduled sync, since retrieving the score can be a non-negligible cost for trackers that calculate the score on-demand (like the tab tracker)
2008-06-11 20:07:35 -07:00
Myk Melez
669e57136f
Automated merge with ssh://hg.mozilla.org/labs/weave/
2008-06-11 20:00:59 -07:00
Myk Melez
5d50fffd37
don't sync tab entry IDs, which change with every session, to avoid generating edit commands for every tab on restart even when the tabs haven't actually changed
2008-06-11 20:00:48 -07:00
Atul Varma
4864f07ae2
async.js now keeps track of how many outstanding callbacks it has and uses this information to log warnings about coroutines that may have yielded without an outstanding callback, and coroutines that may have finished while a callback is still outstanding. These are merely 'warnings' rather than certainties because this code assumes that there is a 1:1 correspondence between accesses to self.cb and yields, and also that self.cb's are actually passed to asynchronous functions. It'd be really cool if we could actually keep track of whether a callback got garbage collected before it was called or something, though I don't know how much it'd help in the end.
2008-06-11 19:19:16 -07:00
Atul Varma
7d98a5dbeb
Added a few log messages to hopefully make the debugging of generators easier. Also added an id component to generators, which is part of their name, to help distinguish between concurrent instances of the same generator function. The following debug output represents the new logging infomation:
...
--
Async.Generator DEBUG runTestGenerator-0: self.cb generated at test_async_missing_yield.js:28
Async.Generator DEBUG secondGen-1: self.cb generated at test_async_missing_yield.js:20
Async.Generator DEBUG secondGen-1: done() called.
Async.Generator DEBUG runTestGenerator-0: self.cb() called, resuming coroutine.
Async.Generator DEBUG runTestGenerator-0: done() called.
Async.Generator DEBUG secondGen-1: self.cb() called, resuming coroutine.
Async.Generator DEBUG secondGen-1: done() called.
Async.Generator ERROR Async method 'secondGen-1' is missing a 'yield' call (or called done() after being finalized)
--
As you can see, I've added log messages whenever the Generator's 'cb' property is accessed--this is almost guaranteed to be very close to a 'yield' statement, and therefore provides us with a decently accurate idea of where the generator 'stopped'. We also log a message when the generator continues, and by doing so we get an idea of how the coroutines interleave.
Another idea I had was to actually match calls to self.cb with calls to 'yield' to automatically detect e.g. two yields in a row (which will ordinarily result in a generator 'hanging'), a generator exiting while a self.cb still hasn't been called, but I'm not sure what kinds of reprecussions it may have.
2008-06-11 18:58:30 -07:00
Myk Melez
a850ec7b70
numChanged should be the number of shared items whose data is different, not the same
2008-06-11 18:47:56 -07:00
Maria Emerson
7da4259fee
bug 438033: implement a better first-run wizard process; r=myk
2008-06-11 17:56:02 -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
97f788bb51
Fixed Utils.prefs.getStringPref (should be getCharPref)
2008-06-11 15:43:12 -07:00
Myk Melez
8182b10abf
resetting the score is not an asynchronous operation, so Service::_syncEngine shouldn't yield after calling it
2008-06-11 15:23:54 -07:00
Myk Melez
633afe0864
clarify wording in scheduled sync threshold debug statements
2008-06-11 14:16:03 -07:00
Myk Melez
555b8a7be4
fix typo in recent checkin that broke appending deltas to the deltas file on the server
2008-06-11 14:14:04 -07:00
Myk Melez
2b2192aca5
once sync thresholds reach 1 (the lowest possible value), leave them there until something changes and we sync
2008-06-11 13:50:47 -07:00
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
5459e1733a
Resolved merging conflicts to service.js.
2008-06-11 11:54:44 -07:00
jonathandicarlo@localhost
4bb05d10b5
Created preferences for xmpp connection info (server url, realm, username, password), and a preference to turn xmpp messaging on or off, and made BookmarkEngine._init() call startXmppClient when this preference is true.
2008-06-11 11:13:35 -07:00
jonathandicarlo@localhost
918cc51c7f
Expanded bookmarkEngine.share and added some more todos for the next round of functions to implement
2008-06-11 11:01:45 -07:00
Myk Melez
932871d1bd
merge
2008-06-11 10:41:57 -07:00
Myk Melez
4a8808e790
bug 430363: ignore remove commands when generating deltas for history so the deltas file on the server doesn't grow too large; r=thunder
2008-06-11 10:40:24 -07:00
Myk Melez
482d745360
bug 434816: use a decreasing threshold algorithm for the periodic scheduled sync to make sure we eventually sync even small changes to data; r=thunder
2008-06-11 10:38:25 -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
Anant Narayanan
9cb5d2c8cc
Make sync service check score before syncing: bug #434816 (r=thunder)
2008-06-10 13:45:37 -07:00
Atul Varma
9cc4da48c1
Refactoring: made a new function, Utils.makeTimerForCall(), which is used by test suites and async.js.
2008-06-09 19:30:11 -07:00
Atul Varma
2905492e20
Added modules/sharing.js, which provides access to the RESTful sharing API, and a unit test suite. The unit test suite is pretty heinous right now and should get a bit of refactoring.
2008-06-09 18:55:26 -07:00
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
dece7fdbd2
Merged
2008-06-09 18:44:21 -07: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
Atul Varma
6fc267b942
Fixed a bug that was causing failing unit tests using async.js to not properly report error conditions.
2008-06-09 18:40:30 -07:00
Atul Varma
813c1abb3f
Added a POST method to dav.js.
2008-06-09 17:36:54 -07:00
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
dc2d1940dd
Moved the writing of the outgoing-share annotation on the bookmark folder to BookmarkEngine._share, where it makes a lot more sense than it does in the share.js dialog-box code where it used to be.
2008-06-09 16:49:04 -07:00
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
7ca2dae349
Fixed a couple minor bugs that were preventing bookmark engine from starting up properly
2008-06-09 16:19:58 -07:00
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
a1c5da3eeb
Renamed bookmarkeEngine methods so they make more sense with the new sharing model, e.g. updateAllIncomingShares instead of syncMounts.
2008-06-09 15:27:09 -07:00
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
6ad669df96
Merged
2008-06-09 12:13:03 -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
8573f956e3
Merged
2008-06-09 11:49:04 -07:00
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
b6a2028a3c
Fixed my code so that BookmarkEngine._sync() now works correctly to call Engine._sync() and BookmarkEngine.syncMounts(), asynchronously. Added in some TODO comments about what's going to happen in the next round of refactoring.
2008-06-09 11:48:52 -07:00
Atul Varma
53f7206dec
Just added a few semicolons that js2-mode warned me about.
2008-06-09 09:45:55 -07:00
Atul Varma
394167a10a
Added a unit test suite for modules/async.js.
2008-06-06 21:40:30 -07:00
jonathandicarlo@localhost
f26ddc5f76
Added license block and explanatory comments to bookmarks.js
2008-06-06 19:28:01 -07:00
jonathandicarlo@localhost
98d1bf05f4
Made BookmarkEngine.sync() responsible for calling BookmarkEngine.syncMounts (to get the incoming shared bookmark folder contents), eliminating the FIXME that previously had this being called from special-case code in WeaveSvc.sync().
2008-06-06 19:22:23 -07:00
Atul Varma
29434b62a4
Merged changes.
2008-06-06 17:46:46 -07:00
Atul Varma
49ad148d83
In async.js, renamed 'object' to 'thisArg', which makes the code clearer and easier to understand.
2008-06-06 17:46:34 -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
Dietrich Ayala
406a97aee2
imported patch xmpp-transport-fault-tolerance-and-test
2008-06-04 18:34:37 -07:00
Dietrich Ayala
ecbfb93933
xmpp-stream-error-handling
2008-06-04 17:36:37 -07:00
Dietrich Ayala
3d3869c8a5
[mq]: xmpp-reconnect
2008-06-04 17:00:02 -07:00
Dietrich Ayala
3e4256b313
[mq]: xmpp-disconnect
2008-06-04 14:02:47 -07:00
Myk Melez
b3bf939ec2
bug 436696: make sure we pass a valid URI to nsITaggingService::getTagsForURI when the bookmark record doesn't include a URI so the method doesn't throw and hork bookmarks sync
2008-06-04 13:40:53 -07:00
Dietrich Ayala
6805970f17
[mq]: xmpp-cleanup
2008-06-04 12:14:28 -07:00
Atul Varma
3a9ddcad85
In passwords.js, turned _hashLoginInfo() into a module-level function.
2008-06-03 16:56:58 -07:00
Atul Varma
d8420aaf50
Minor js2-mode warning fixes.
2008-06-03 15:14:27 -07:00
Atul Varma
e5bb509e17
Removed unused code from cookies.js, fixed a few js2-mode warnings.
2008-06-03 14:49:22 -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
d635f80fdc
remove unused _json property from TabSyncCore
2008-06-03 11:50:08 -07:00
Myk Melez
690e2b800c
merge
2008-06-03 11:43:07 -07:00
Myk Melez
07ba8ea83e
bug 434817: sync tabs
2008-06-03 11:32:59 -07:00
Atul Varma
ada0204cac
Moved all code related to the syncing of cookies--e.g. CookieStore, CookieTracker, CookieEngine, CookieSyncCore--into their own file at modules/engines/cookies.js. I'll be doing the same to the other engines shortly.
...
This helps with code organization--all the logic for dealing with a particular data type is now in one place--and should also make it easier to write unit/regression tests.
2008-06-03 11:11:44 -07:00
Myk Melez
2d0bcb7a9b
minor typo fixes
2008-06-02 15:24:52 -07:00
Dan Mills
d526a56d57
log stack traces from sync exceptions
2008-06-02 13:02:04 +09: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
0640f244d6
format exception correctly when an engine throws during sync
2008-05-30 17:40:08 -07:00
Dan Mills
edff2a32aa
make some async generator errors clearer
2008-05-30 17:38:27 -07:00
Atul Varma
b9a3944d7e
Added a trivial appender to faultTolerance.js.
2008-05-30 16:32:06 -07:00