Commit Graph

18304 Commits

Author SHA1 Message Date
Grisha Kruglov
283d1a3450 Bug 1291821 - Allow BatchingDownloader to resume downloads using offset r=rnewman
BatchingDownloader uses provided RepositoryStateProvider instance in order to track
offset and high water mark as it performs batching.

The state holder objects are initialized by individual ServerSyncStages, and prefixes are used to ensure keys
won't clash.

Two RepositoryStateProvider implementations are used: persistent and non-persistent. Non-persistent
state provider does not allow for resuming after a sync restart, while persistent one does.

Persistent state provider is used by the history stage. It is fetched oldest-first, and records are applied
to live storage as they're downloaded. These conditions let use resume downloads. It's also possible to
resume downloads for stages which use a persistent buffer, but currently we do not have any.

Offset value and its context is reset if we hit a 412 error; it is maintained if we hit a sync deadline, allowing us to
minimize number of records we'll redownload. BatchingDownloaderController owns resuming and context checking logic.

High water mark (h.w.m.) is maintained across syncs and used instead of stage's "last-synced" timestamp if said stage is
set to fetch oldest-first and explicitely allows use of a h.w.m. Server15RepositorySession provides correct timestamp
to RecordsChannel, decoupling BatchingDownloader from this logic.

MozReview-Commit-ID: IH28YrDU4vW

--HG--
extra : rebase_source : 63bd7daaa1fd2a63e10289d6d4cd198aaf81498b
2017-01-19 13:11:18 -08:00
Grisha Kruglov
976fe61ec1 Bug 1291821 - Track incomplete stages and re-sync them r=rnewman
Stage re-sync is requested if:
- We hit a 412 either during batching download or batching upload
- We hit a sync deadline either during batching download or when merging records from the buffer

SessionStoreDelegate interface was expanded with onStoreFailed,
indicating that not just a particular record failed, but the whole operation did.

onFetchFailed is used to inform delegates of 412/deadline failures during downloads.
Three new exception types were added, to facilitated messaging between different layers.

MozReview-Commit-ID: Ltdi5noEvdV

--HG--
extra : rebase_source : 9d4af039198b9bc92fbbf25cf8e3d32375a2ab26
2017-02-24 13:04:54 -08:00
Grisha Kruglov
29a79ad111 Bug 1291821 - Move bulk insert logic for new history to BrowserProvider r=rnewman
This commit does two things:

1) It simplifies history insertion logic, which wrongly assumed that history which was
being inserted might be not new. As such, it was necessary to check for collisions of
visit inserts, record number of visits actually inserted, and update remote visit counts
correspondingly in a separate step, making history insert a three step operation (insert
history record, insert its visits, update history record with a count). However, bulkInsert
runs only for records which were determined to be entirely new, so it's possible to drop
the third step.

2) Makes all of the insertions (history records and their visits) run in one transaction.
Prepared statements for both history and visit inserts are used are used as a
performance optimization measure.

MozReview-Commit-ID: 48T4G5IsQNS

--HG--
extra : rebase_source : 280d468ef9b57163a178e42707aee610977625c4
2016-11-29 13:42:53 -08:00
Grisha Kruglov
277bfc33aa Bug 1291821 - Rename repositories/sessions r=rnewman
We're at Sync 1.5 now, so might as well rename the files.

Also, renamed the ConstrainedRepository... to a name that's more reflective
of that session's role after the changes.

MozReview-Commit-ID: 96XCzoBzD5D

--HG--
rename : mobile/android/services/src/main/java/org/mozilla/gecko/sync/Server11PreviousPostFailedException.java => mobile/android/services/src/main/java/org/mozilla/gecko/sync/Server15PreviousPostFailedException.java
rename : mobile/android/services/src/main/java/org/mozilla/gecko/sync/Server11RecordPostFailedException.java => mobile/android/services/src/main/java/org/mozilla/gecko/sync/Server15RecordPostFailedException.java
rename : mobile/android/services/src/main/java/org/mozilla/gecko/sync/repositories/ConstrainedServer11Repository.java => mobile/android/services/src/main/java/org/mozilla/gecko/sync/repositories/ConfigurableServer15Repository.java
rename : mobile/android/services/src/main/java/org/mozilla/gecko/sync/repositories/Server11Repository.java => mobile/android/services/src/main/java/org/mozilla/gecko/sync/repositories/Server15Repository.java
rename : mobile/android/services/src/main/java/org/mozilla/gecko/sync/repositories/Server11RepositorySession.java => mobile/android/services/src/main/java/org/mozilla/gecko/sync/repositories/Server15RepositorySession.java
rename : mobile/android/tests/background/junit4/src/org/mozilla/android/sync/net/test/TestServer11Repository.java => mobile/android/tests/background/junit4/src/org/mozilla/android/sync/net/test/TestServer15Repository.java
rename : mobile/android/tests/background/junit4/src/org/mozilla/android/sync/test/TestServer11RepositorySession.java => mobile/android/tests/background/junit4/src/org/mozilla/android/sync/test/TestServer15RepositorySession.java
extra : rebase_source : 96f7211951611ce7785edbef9dce412accb2878d
2017-02-24 13:04:15 -08:00
Grisha Kruglov
abfb065f6d Bug 1291821 - Get tests to work after sync changes r=rnewman
MozReview-Commit-ID: 3djnmEmzndU

--HG--
extra : rebase_source : 0f51adf71bd0f157da201b2ea7e4092c0acaf9a6
2016-10-11 20:02:02 -07:00
Grisha Kruglov
0311f49437 Bug 1291821 - Ensure sink repository is aware of new events coming from the source r=rnewman
MozReview-Commit-ID: DgqGzfoJxhj

--HG--
extra : rebase_source : da0d451422e4733e5a6ab8a4558150197f08c253
2016-10-11 20:00:09 -07:00
Grisha Kruglov
1020737f7f Bug 1291821 - Split history stage into recent and full history stages r=rnewman
Recent history stage will only run if full history stage did not complete yet.
Bug 1316110 tracks follow up work to make this more efficient.

MozReview-Commit-ID: 7dtbfEFUMGB

--HG--
extra : rebase_source : 94a3e652d9dcf7996e14b96aee28810baee078ea
2016-11-16 14:53:07 -08:00
Grisha Kruglov
5632261a6b Bug 1291821 - Wrap local repositories in buffering middleware r=rnewman
History stage does not wrap history respository in a buffer, because we'd like to
use a high-water-mark and offset resuming later on, and using a persistent buffer
for this stage does not make sense.

MozReview-Commit-ID: FS1swml2bIC

--HG--
extra : rebase_source : be197e0459d86a320076174936cea8ee76e1dbed
2016-10-20 16:31:31 -07:00
Grisha Kruglov
dc5b52e557 Bug 1291821 - Use sync deadline to decide of batching downloader should proceed r=rnewman
MozReview-Commit-ID: IDgIj9lBt61

--HG--
extra : rebase_source : a3d1773abb50748631e28c0aa14797b17b857def
2016-11-01 18:52:18 -07:00
Grisha Kruglov
2c49e9087a Bug 1291821 - Keep track of sync deadline r=rnewman
MozReview-Commit-ID: Fvuc05K1arV

--HG--
extra : rebase_source : 74b0d4dc58c0cd2c1113253eee28ba783e114803
2016-11-08 12:38:00 -08:00
Grisha Kruglov
2b78e4d632 Bug 1291821 - Remove total sync limits, refactor batching downloader r=rnewman
MozReview-Commit-ID: 2SYxemfTv9V

--HG--
extra : rebase_source : 1c795598a9c4d9c7538c740a89a8867dc32bdca1
2016-10-20 13:34:06 -07:00
Grisha Kruglov
f5cae92f97 Bug 1291821 - Decouple BatchingUploader from Server11Repository r=rnewman
MozReview-Commit-ID: 7mPy1cmr3vq

--HG--
extra : rebase_source : 0f48a86e5d6861ffc217bd8c69c154e37c6fd871
2016-11-01 18:55:15 -07:00
Grisha Kruglov
18478e0806 Bug 1291821 - Simplify onFetchFailed, clean up some exception code r=rnewman
MozReview-Commit-ID: 11sIAPCfLWk

--HG--
extra : rebase_source : fb565ed391b721f485f9be74ec3a7986bbc1dfd6
2016-10-11 19:29:46 -07:00
Grisha Kruglov
eb469c632e Bug 1291821 - Add onBatchComplete to a FetchRecordsDelegate r=rnewman
Intended to signal that a group of records have been fetched, and more are
to come after a pause.

MozReview-Commit-ID: 8ozZTc6aNdA

--HG--
extra : rebase_source : e2fdf70d6db6e242e65b788dcb6a09f975b5124b
2016-10-11 19:29:02 -07:00
Grisha Kruglov
3a6788a0df Bug 1291821 - Rename RepositorySession's delegate to storeDelegate, for clarity r=rnewman
Otherwise we often end up with delegate meaning both fetch delegate and store delegate
in extending classes, which gets a little confusing.

MozReview-Commit-ID: L4Sd79jLr88

--HG--
extra : rebase_source : c8df4e2ea373dd415e1c113ccf37c09e392a5302
2016-10-08 17:03:38 -07:00
Grisha Kruglov
f12e7032ca Bug 1291821 - Switch stage duration interval counting to use elapsedRealtime r=rnewman
It is a better fit for interval counting.

MozReview-Commit-ID: LCF0U24MAwF

--HG--
extra : rebase_source : e8a1f4d7d000194f415e882c137cda2b15a0b7b3
2016-10-08 15:28:14 -07:00
Grisha Kruglov
481be98952 Bug 1291821 - Buffering repository middleware r=rnewman
MozReview-Commit-ID: GS3M7k670Po

--HG--
extra : rebase_source : 1b3f102b011fe171f8cafab0cf47ca69b2eb9b93
2017-01-19 13:11:41 -08:00
Grisha Kruglov
c9b5e4ff48 Bug 1291821 - Add storeIncomplete to RepositorySession interface r=rnewman
MozReview-Commit-ID: 68ty7KlP5NR

--HG--
extra : rebase_source : b4ae0a3c286963f4c476c7c0ed768ad5a2b5bb8b
2016-11-02 16:40:15 -07:00
Grisha Kruglov
6052f6ca4c Bug 1291821 - Pre: remove unused SerialRecordConsumer r=rnewman
MozReview-Commit-ID: 3fiHVErUA1g

--HG--
extra : rebase_source : d23b3f157fe7cf42e30a40c034970a355098c68c
2016-10-08 14:49:46 -07:00
Dave Townsend
428143ec78 Bug 1341737: Remove SpatialNavigation.jsm. r=blassey
MozReview-Commit-ID: JIbo1jvwZRW

--HG--
extra : rebase_source : b4e13e75d5dd9ac0e1229c4c54a968ea3f3eda73
2017-02-22 10:46:56 -08:00
Andrzej Hunt
bcb1f87757 Bug 1340957 - Don't rely on SuggestedSites being loaded r=sebastian
MozReview-Commit-ID: JjWurcyDoWQ

--HG--
extra : rebase_source : b3970d3fa36e785c4b9200216a273237c3ad8219
2017-02-21 08:21:56 -08:00
Phil Ringnalda
52d4a2e734 Merge m-c to m-i 2017-02-23 22:31:18 -08:00
Phil Ringnalda
fe1d792536 Backed out changeset 7ee8f1e428c0 (bug 1340041) for Android near-permaorange in media/mediasource/test/test_FrameSelection.html and media/webspeech/synth/test/test_speech_simple.html 2017-02-23 22:27:13 -08:00
Carsten "Tomcat" Book
e6b82618f4 merge mozilla-inbound to mozilla-central a=merge 2017-02-23 14:59:37 +01:00
Michael Kaply
e4d2ce1f0b Bug 1332562 - OMA Downloads should go to the system Download directory. r=snorp
MozReview-Commit-ID: 48fGzGYBoS6

--HG--
extra : rebase_source : 711cadca20a2c26b19c1ffcd0bc33abb4598cc38
2017-02-23 12:27:43 -06:00
Michael Kaply
a8e8f3d0e3 Bug 1031210 - Don't assume URL format to prevent crash. r=snorp
MozReview-Commit-ID: 23qE4mI5tBU

--HG--
extra : rebase_source : 504a432df377cc520509c830855d9829f1e02063
2017-02-23 11:24:59 -06:00
Jim Chen
78cdb2292f Bug 1257366 - Try setting designMode again; r=gbrown
If the first set designMode call fails, schedule another call for a
later time.
2017-02-22 23:10:18 -05:00
Jim Chen
371103fac0 Bug 1340960 - Correctly invoke print callbacks; r=sebastian
generatePDF returns a Promise. We shouldn't feed the Promise to the
callback, but rather invoke the callbacks when the Promise is
resolved/rejected.
2017-02-22 23:10:17 -05:00
Jim Chen
f85ea35de2 Bug 1337459 - Update to selected tab when ToolbarDisplayLayout is ready; r=sebastian
We don't update ToolbarDisplayLayout when it's not ready (i.e. when it's
not attached to a window yet), but when it does become ready, we should
update it to the selected tab, if any.
2017-02-22 23:10:16 -05:00
John Lin
d3b1eacd8b Bug 1340582 - fix exception logging. r=jchen
MozReview-Commit-ID: 2PnTCeFAW4e
2017-02-23 11:16:28 +08:00
Wes Kocher
29443ed98c Merge m-c to inbound, a=merge
MozReview-Commit-ID: HDHJC8X9xWG
2017-02-22 15:06:46 -08:00
Wes Kocher
b7294d3167 Merge inbound to central, a=merge
MozReview-Commit-ID: 2R3yE5OIznC
2017-02-22 15:01:04 -08:00
Jeff Gilbert
c90805dae5 Bug 1341459 - Remove MOZ_WEBGL_CONFORMANT. - r=jrmuizel
MozReview-Commit-ID: 32wxGM4ZbGA
2017-02-22 14:55:34 -08:00
Eugen Sawin
9bf1487388 Bug 1322576 - [5.3] Make GeckoView settings accessible through nsIAndroidView. r=jchen 2017-02-22 14:57:42 +01:00
Eugen Sawin
8598247dd1 Bug 1322576 - [3.3] Add GeckoView settings module. r=snorp 2017-02-22 14:57:40 +01:00
Eugen Sawin
a1b696f5ae Bug 1322576 - [2.4] Add GeckoView settings management. r=snorp,jchen 2017-02-22 14:57:38 +01:00
Carsten "Tomcat" Book
9d982b9508 merge mozilla-inbound to mozilla-central a=merge 2017-02-22 14:33:38 +01:00
Iris Hsiao
c2bb6f5851 Merge mozilla-central to mozilla-inbound 2017-02-22 16:18:56 +08:00
Iris Hsiao
4b9cf39daa Backed out changeset 0172497c1024 (bug 1337940) 2017-02-22 16:16:10 +08:00
Iris Hsiao
6c63b5ced7 Backed out changeset dd8c7da15822 (bug 1337940) for tc-M(31) perma failure 2017-02-22 16:16:06 +08:00
Iris Hsiao
cac0976ded Backed out changeset 28c5827d707c (bug 1337325) for tc-M(31) perma failure 2017-02-22 16:15:49 +08:00
John Lin
584224e8cd Bug 1340582 - handle shared memory allocation failure. r=jchen
MozReview-Commit-ID: ETk9nHHkyYA
2017-02-22 14:17:26 +08:00
Grigory Kruglov
11a71d0abd Bug 1341125 - Clear accounts in-memory cache when necessary. r=nalexander
MozReview-Commit-ID: sf5WhXxRVg
2017-02-21 11:31:22 -08:00
Wes Kocher
5295bd9f91 Merge m-c to inbound, a=merge
MozReview-Commit-ID: AoD5GpFatBw
2017-02-21 17:41:05 -08:00
Jan Henning
f9c448be82 Bug 1339737 - Don't set the bookmarks panel scroll position again if the same loader has been reloaded. r=ahunt
Changes in the BrowserDB, e.g. because of sync or when opening a link (in a new tab) will trigger the BookmarksLoader's onContentChanged() method, which will trigger a new load reusing the current loader. This means that currently, the code for setting the scroll position in onLoadFinished() gets to run again in that case.

We only want to set the scroll position when the user has navigated to a different folder. Folder navigation will always create a fresh loader, therefore we now keep track whether we've already seen a particular loader in onLoadFinished() and only set the scroll position if we're encountering this particular BookmarksLoader instance for the first time.

MozReview-Commit-ID: Ln8yeUEoEfr

--HG--
extra : rebase_source : a32c33080f56071059898127c19c75e3d32b3a3b
2017-02-15 21:48:29 +01:00
Jan Henning
9c78f37fc6 Bug 1337325 - Remove unused zoom and scroll code from browser.js r=kats
More JPZ leftovers, I presume. In any case what's left doesn't do anything really useful and a DXR search didn't reveal any remaining users, so this can be thrown out.

MozReview-Commit-ID: 9dN6Jifpbvw

--HG--
extra : rebase_source : 04614d729a55e00c5331ecc321ca2ef5b5e73747
2017-02-12 13:33:42 +01:00
Jan Henning
90d62ccde5 Bug 1337940 - Part 2 - Make session store form data test work again. r=ahunt
Collecting data for history changes causes an additional session store data update for that tab when navigating back, which needs to be accounted for in this test. Therefore we now also wait for DOMTitleChanged before assuming that the tab has navigated to its intended location.

MozReview-Commit-ID: FDNQednXPWh

--HG--
extra : rebase_source : c38b4085eac914bb9a3aa4f0e2b1e04eb3cf1ce3
2017-02-13 22:16:36 +01:00
Jan Henning
2e443a5728 Bug 1337940 - Part 1 - Capture session store tab data on history listener notifications. r=ahunt
So far we've simply used DOMTitleChanged as a proxy for navigation, since it's the earliest opportunity at which we have all necessary data for a new history entry (session history itself as well as tab URL and *title*) available.

However it turns out that this is not 100 % reliable, since some pages might e.g. implement their navigation in JS using the history API, which won't necessarily trigger any DOMTitleChanged events. In those case we'd fail to update the tab's session history in the session store unless the user eventually navigated to someplace else that actually triggers a title change event again - if the browser was closed before that, we'd fail to properly restore the user's state.

To fix this, we take a similar approach as the desktop session store and collect a tab's history data again when receiving any history change notification for that tab.

Because the OnHistory... notifications are mostly cancellable, the session history hasn't been actually updated yet at the point the history listener is being called. We therefore can't synchronously call onTabLoad() from within our history change notification handler and have to schedule an async timeout instead so as to give the session history a chance to complete updating its state.

MozReview-Commit-ID: LgHer940QwT

--HG--
extra : rebase_source : a9634be57f3f43e30f42431e8a28846d958534ee
2017-02-11 21:07:29 +01:00
Iris Hsiao
bc5590a600 Merge mozilla-central to autoland 2017-02-22 16:17:36 +08:00
James Cheng
f604ffe72d Bug 1340172 - Disable EME on Fennec(Only pref on for Nightly). r=cpearce
MozReview-Commit-ID: 66YOK9r1yb0

--HG--
extra : rebase_source : d409b097f88279b358ac6f7caf302ea7ad3e2e17
2017-02-17 11:10:05 +08:00