Commit Graph

288 Commits

Author SHA1 Message Date
Richard Newman
906e72b628 Bug 618341: Rethrow exceptions we aren't supposed to handle. r=philiKON 2010-12-10 15:43:12 -08:00
Richard Newman
b700f4e4a5 Bug 617709: Tests and functionality for on-the-fly HMAC error recovery. r=philiKON 2010-12-09 23:06:44 -08:00
Richard Newman
98051adf04 Bug 616265: Add download limit for history, lift magic number. r=mconnor 2010-12-06 17:25:35 -08:00
Richard Newman
ffb07cee37 Bug 603489, 614489: simplified crypto. r=mconnor 2010-11-29 16:41:17 -08:00
Philipp von Weitershausen
31d6d2b3c1 Bug 591126 - Handle upload interruption gracefully [r=mconnor] 2010-11-23 21:21:31 -08:00
Philipp von Weitershausen
7440175181 Bug 610923 - Allow engines to bypass the tracker for certain or all changed items [r=mconnor]
SyncEngine now uses the getChangedIDs() method to get all changed IDs before a sync. By default this still goes through the tracker, but engines can override this method to do queries based on timestamps, or to bypass the tracker entirely.

SyncEngine now also exposes a lastSyncLocal property that keeps the local timestamp of the last sync so that engines can do timestamp based queries.
2010-11-11 11:00:35 -08:00
Philipp von Weitershausen
08efe3cb23 Bug 609398 - Get rid of partial sync [r=mconnor] 2010-11-09 13:51:19 -08:00
Philipp von Weitershausen
3065b1ede2 Bug 601973 - SyncEngine._testDecrypt() yields wrong result [r=mconnor]
Fix a 'this' scoping error in SyncEngine._testDecrypt(). Rename this method to canDecrypt() since it's clearly public API.

Provide tests for SyncEngine.canDecrypt() as well as Service.wipeClient().
2010-10-05 20:32:56 +02:00
Philipp von Weitershausen
753f9d8d3e Bug 600995 - Use a record's "encryption" property only as a fallback, default to the engine's value. [r=mconnor] 2010-10-04 22:39:08 +02:00
Philipp von Weitershausen
6e250f858f Bug 569968 - Migration requires client to remove absolute URLs in crypto records
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.
2010-08-12 22:19:39 +02:00
Philipp von Weitershausen
c29a0e55af Bug 578671 - Sync which engines are enabled across clients, wipe data for disabled engines [r=mconnor] 2010-09-07 18:44:01 +02:00
Philipp von Weitershausen
a2466ae2e3 Bug 582083 - Should inspect POST responses for failed WBOs [r=Mardak]
Make sure records that failed to upload continue to be marked in the tracker so that they'll be uploaded again in the next sync.
2010-07-31 13:28:00 +02:00
Mike Connor
39e9fff92b Bug 578825 - sync should only sort on mobile clients, r=Mardak 2010-07-14 18:18:24 -04:00
Edward Lee
4e55362a90 Bug 570636 - Decide how to co-exist as a sync add-on and built-in sync [r=mconnor]
Map the modules directory to services-sync instead of weave and update imports.
2010-06-16 14:30:08 -07:00
Edward Lee
0d25dd2924 Bug 568677 - Failure to get CryptoMeta assumes it's missing [r=mconnor]
Explicitly check the status code to make sure we stop syncing on non-404 crypto meta failures. Add tests to check correct behavior of 404 and non-404 errors during syncStartup.
2010-06-14 15:16:53 -07:00
Edward Lee
9ddf0f8ed5 Bug 546551 - Weave status bar notifications are too busy [r=mconnor]
Remove status bar icon/text for setup/connect/sync status. Add menuitem for setting up sync instead of drilling down a 1-item submenu that leads to a button. Remove unused Engine.displayName and related strings.
2010-06-14 10:30:37 -07:00
Philipp von Weitershausen
721e3fa637 Bug 557596 - code audit and create unit test plan for resource.js [r=mconnor]
Lots of resource tests, Resource.serverTime initialized to null, Resource.headers normalized to lowercase.
2010-06-01 15:15:53 -07:00
Philipp von Weitershausen
ceaa8fab03 Bug 557588 - code audit and create unit test plan for engines.js [r=mconnor]
Tests for SyncEngine.sync(), incl some additions to harness.
2010-06-01 15:07:50 -07:00
Philipp von Weitershausen
ba3ea98599 Bug 557588 - code audit and create unit test plan for engines.js [r=mconnor]
Tests for EngineMangerSvc, Engine and SyncEngine sans sync().
2010-06-01 15:06:16 -07:00
Edward Lee
98d3a793fe Bug 567371 - replace server and replace local options does not sync certain Passwords/bookmarks [r=mconnor]
Make sure to clear local cache when deleting crypto records from the server. Handle missing crypto by deleting any existing data and reuploading. Fix broken records by uploading new ones.
2010-05-21 12:15:58 -07:00
Edward Lee
433ac3095f Bug 562515 - Reset sync option "Replace all data on this computer with your Weave data" is not handling local deletes correctly [r=mconnor]
Clear out any changed ids when wiping the client to prevent delete records from getting uploaded for these items.
2010-05-03 14:39:32 -07:00
Edward Lee
210f158298 Bug 556454 - engine.sync should always check engine.enabled [r=mconnor]
Just check if the engine is enabled at the beginning of sync. For now keep getEnabled as it's used for other behavior and not just sync.
2010-04-29 16:42:21 -07:00
Mike Connor
914768c99b bug 496485 - make Service.wipeServer work properly, r=Mardak 2010-04-07 20:06:37 -04:00
Edward Lee
32b2f2a15a Bug 557891 - Wipe local triggers deletions on all other clients! [r=mconnor]
Ignore tracker changes triggered by wiping the local client store.
2010-04-07 17:52:22 -07:00
Edward Lee
3b4aa0220d Bug 550627 - Default reconciliation to server wins for older changed items [r=mconnor]
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.
2010-04-01 15:54:53 -07:00
Edward Lee
e2f2dee6c3 Bug 546768 - form history uses hashes for GUIDs [r=mconnor]
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.
2010-04-01 15:29:16 -07:00
Edward Lee
0ad782b0b5 Bug 503964 - Have per-engine versioning to avoid wiping all engine data [r=mconnor]
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.
2010-03-25 10:05:21 -07:00
Edward Lee
e73dbf06b9 Bug 547007 - Use a per-record IV instead of one for each symkey [r=mconnor]
Generate a random IV on every encrypt instead of taking it from the CryptoMeta. Don't bother generating a bulkIV per CryptoMeta.
2010-03-16 16:31:56 -07:00
Edward Lee
177b122960 Bug 547048 - Only allow clients to issue delete records [r=mconnor]
Don't specially serialize/not encrypt delete records and store the deleted flag as part of the cleartext payload.
2010-03-16 16:31:56 -07:00
Edward Lee
00f548581e Bug 544069 - Move bookmark parentid into the encrypted payload [r=mconnor]
Tweak the get/setters to refer to the PlacesItem instead of WBORecord.
2010-03-16 16:31:56 -07:00
Edward Lee
accbff6fd1 Bug 551874 - Figure out if we can avoid getting into partial synced state [r=mconnor]
For not-mobile clients, sync everything by specifying Infinity to keep existing math/logic working. Don't add a limit ?query if it's Infinity.
2010-03-19 11:35:01 -07:00
Edward Lee
1ce05d4603 Bug 549633 - Standardize record creation so all SyncEngines encrypt data [r=mconnor]
Always add the id and encryption value so client and delete records can be encrypted.
2010-03-05 14:46:48 -08:00
Edward Lee
a9c2e6c4c2 Bug 549632 - Remove storage cache, which is mostly un/incorrectly used [r=mconnor]
Remove incorrectly used cache from some engines and clean up references from SyncEngine.
2010-03-05 14:43:11 -08:00
Edward Lee
1ad29052b7 Bug 545767 - Clean up various names/strings needed for each set of engines/stores/trackers
Pass the engine name when constructing a subclass engine and construct the store/tracker with the same name.
2010-02-11 15:29:15 -08:00
Edward Lee
b8de893593 Bug 545764 - Convert constructor -> _init pattern to just use constructor
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
2010-02-11 15:25:31 -08:00
Edward Lee
e8ccb18a12 Bug 536595 - Sync fewer items per data type on mobile
Just sync a flat 50 instead of .1 of 1500 to avoid increasing slowdown when processing many items.
2010-01-06 10:00:05 -08:00
Edward Lee
def7a2495e Bug 536594 - Warn on record creation failure but continue the sync
Wrap createRecord and encrypt incase an engine fails to create one or more of the records similar to how process incoming records are wrapped.
2010-01-06 09:59:05 -08:00
Edward Lee
fdaee13190 Bug 535722 - Reduce the amount of logging for default log levels
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.
2009-12-17 18:51:55 -08:00
Edward Lee
86d2294e4d Bug 531005 - Sync is not working after update IWeaveCrypto.unwrapSymmetricKey NS_ERROR_FAILURE
Check that the cryptometa is unwrappable when syncing; if not purge the key and data and make a new crypto record.
2009-12-02 17:25:14 -08:00
Edward Lee
eb87765d7b Bug 530823 - Engines need to be able to specify a prefName for sharing prefs (different history types)
Use prefName for checking if an engine is enabled and have forms share a prefName with history.
2009-11-30 12:15:18 -08:00
Edward Lee
d4295ef8e9 Remove unused prefs and imports. (Bug 524916)
--HG--
extra : rebase_source : 074e542f63ee840b61db7fe63a6c3540c13a31a5
2009-11-25 17:49:15 -08:00
Edward Lee
c05e0c5f94 Remove trailing whitespace from the codebase. 2009-11-20 14:34:20 -08:00
Edward Lee
8bcc3584b3 Bug 526942 - Try to sync tabs when viewing remote tabs
Try fetching tabs when loading the remote tabs view and if the sync got new tabs, reload the page.
2009-11-12 15:18:43 -08:00
Edward Lee
89460e2378 Bug 527766 - Sync history pages with a single visit
Backout bug 518972 (6954c93b8903) so now we push all data instead of pages with more than 1 visit.
2009-11-10 15:52:40 -08:00
Edward Lee
5013b211cb Bug 527775 - Allow customizable api version on the client
Add a new pref storageAPI (currently 0.5) that gets used for storage urls.

--HG--
extra : rebase_source : 74ca13de918d4211cbdcf708c30cc03d876fec7d
2009-11-10 15:24:31 -08:00
Edward Lee
6c926b2c49 Avoid undefined property warnings by checking for null first instead of comparing. 2009-11-04 15:12:29 -08:00
Mike Connor
bcb7b750cb bug 485108 - drop status dialog, show status including engines on statusbar, remove dead status bits 2009-10-28 03:42:35 -04:00
Edward Lee
862fb7381e Ignore sortindex when comparing if records are different because it's only used for ordering of records. 2009-10-16 16:18:38 -07:00
Edward Lee
bd2a51d362 Bug 522077 - Download a certain total number of items each sync instead of fixed "catch up"
Limit the initial the first fetch of new items by a total number of fetch and subtract the number of items processed. Use the difference to keep fetching more items from the backlog in chunks.
2009-10-13 11:20:28 -07:00
Edward Lee
8ce9ab3899 Split multiple id deletes into 100-id chunks instead of hitting max apache URI length. 2009-10-12 18:11:31 -07:00