gecko-dev/testing/modules
Kit Cambridge 064ed56076 Bug 1368209 - Refactor Engine::_processIncoming into three stages. r=eoger,tcsc
* In the first stage, we fetch changed records, newest first, up to the
  download limit. We keep track of the oldest record modified time we
  see.
* Once we've fetched all records, we reconcile, noting records that
  fail to decrypt or reconcile for the next sync. We then ask the store
  to apply all remaining records. Previously, `applyIncomingBatchSize`
  specified how many records to apply at a time. I removed this because
  it added an extra layer of indirection that's no longer necessary,
  now that download batching buffers all records in memory, and all
  stores are async.
* In the second stage, we fetch IDs for all remaining records changed
  between the last sync and the oldest modified time we saw in the
  first stage. We *don't* set the download limit here, to ensure we
  add *all* changed records to our backlog, and we use the `"oldest"`
  sort order instead of `"index"`.
* In the third stage, we backfill as before. We don't want large deltas
  to delay other engines from syncing, so we still only take IDs up to
  the download limit from the backlog, and include failed IDs from the
  previous sync. On subsequent syncs, we'll keep fetching from the
  backlog until it's empty.

Other changes to note in this patch:

* `Collection::_rebuildURL` now allows callers to specify both `older`
  and `newer`. According to :rfkelly, this is explicitly and
  intentionally supported.
* Tests that exercise `applyIncomingBatchSize` are gone, since that's
  no longer a thing.
* The test server now shuffles records if the sort order is
  unspecified.

MozReview-Commit-ID: 4EXvNOa8mIo

--HG--
extra : rebase_source : f382f0a883c5aa1f6a4466fefe22ad1a88ab6d20
2017-11-01 11:09:57 -07:00
..
tests
ajv-4.1.1.js
AppData.jsm
AppInfo.jsm
Assert.jsm Bug 1412282 - Allow calling Assert.jsm methods directly from other test-only modules. r=mikedeboer 2017-10-27 14:38:30 +01:00
CoverageUtils.jsm Bug 1408777 - Automatically fix instances of missing semicolons in the tree. r=Standard8 2017-10-15 20:50:39 +01:00
FileTestUtils.jsm Bug 1411979 - Share the getTempFile function in xpcshell and browser tests. r=mak 2017-10-31 13:25:45 +00:00
MockRegistrar.jsm
MockRegistry.jsm
moz.build Bug 1411979 - Share the getTempFile function in xpcshell and browser tests. r=mak 2017-10-31 13:25:45 +00:00
sinon-2.3.2.js
StructuredLog.jsm Bug 1408777 - Automatically fix instances of missing semicolons in the tree. r=Standard8 2017-10-15 20:50:39 +01:00
TestUtils.jsm Bug 1368209 - Refactor Engine::_processIncoming into three stages. r=eoger,tcsc 2017-11-01 11:09:57 -07:00