Schema migration is simple: it adds localVersion and syncVersion columns to bookmarks table.
Default values are:
- localVersion=1
- syncVersion=0
... indicating that a record needs to be uploaded.
Data migration is also relatively simple: we need to ensure that records which are "up-to-date",
according to the old timestamp-based tracking, are not marked for an upload, and vice versa - records which are
either "new" or "changed" are marked for an upload.
Since our default during schema migration is to mark everything for upload, the data migration
concerns itself with the records which are considered as "up-to-date".
See detailed description in the comments in the data migration function.
MozReview-Commit-ID: J6aglurYwlo
--HG--
extra : rebase_source : 299a4eb8ea28ddfd71e98e005af1e7f89468dd80
Versioned syncing work later in the patch series introduces functionality that is best suited to live
within the RepositorySession inheritance chain.
We'd like to introduce a new RepositorySession subclass which individual RepositorySessions are able to
inherit. And that's when the current inheritance structure gets in the way: history and bookmarks both share
a superclass, and we'd like to only introduce this new functionality for bookmarks.
This makes our task, as stated, impossible without breaking apart the current inheritance structure.
This patch introduces a few "delegate" objects:
- SessionHelper
--> HistorySessionHelper
--> BookmarksSessionHelper
... which absorb most of the functionality from AndroidBrowserRepositorySession (removed) and bookmark and history
repository sessions.
This change is not functional - everything remains as before otherwise.
MozReview-Commit-ID: 7WwUmY3Wql7
--HG--
extra : rebase_source : a8cd49fd14cdc76b9e2906d4ee8c2052b9152413
As part of moving toward versioned syncing, we need to start decoupling change tracking
concepts from parts of the system that facilitate flow of records. This allows us to track
what changed differently for different data types, while maintaining a consistent and predictable API.
A move toward that is to let repositories own determinining that a record has been modified.
Repositories are now asked to provide modified records, instead of a very specific "records modified since".
This patch does not change behaviour of the system: every repository still uses timestamp-based
change tracking to actually provide modified records to the caller. A changeover to version
tracking will come later in this series for bookmarks, and as part of Bug 1383894 for other repositories.
MozReview-Commit-ID: LQuWYdlNHpt
--HG--
extra : rebase_source : 5552d74d4a967ce85af09aaa57ca438fe5b949f3
We're moving toward version-based syncing. This is one of the bricks in that road,
removing an unused timestamp-based interface for accessing changed records.
MozReview-Commit-ID: CYUyASWXrMW
--HG--
extra : rebase_source : b95687409bc5f3e8e21fb9b084efdcd14a975d01
Normally, we keep the Java composition when composition is committed on
the Gecko side. However, if we somehow lose the composition on the Java
side (e.g. due to script changing the text), we should reset the
keyboard so it's aware of the change.
MozReview-Commit-ID: 6NbGj6mgq3l
We invovled another implementation. We can get it back from repository
easily for any reason, so remove it for now.
MozReview-Commit-ID: c4H8wW41Dr
--HG--
extra : rebase_source : 74baa13d3d0ceb2b30092ec4e99d7218b0b3e9a8
* DrawableWrapper - a class similiar to DrawableWrapper in Android v23.
* ShiftDrawable - provide shif-animation for its child drawable
* AnimatedProgressBar - ProgressBar.setProgress(int, boolean) involved
since API v24. This is an implementation for animation.
MozReview-Commit-ID: HjLAXXQdZKO
--HG--
extra : rebase_source : 442818e9be688072cff45cc3dd54416564c602d1
We are going to involve new implementation for page loading indicator by
ProgressBar. Add ThemedProgressBar for Private Mode.
MozReview-Commit-ID: 4Bj9mJtlHPM
--HG--
extra : rebase_source : 3f118a8c44baf91c906030ac01572655c509dc57
Additionally, we strip common subdomains like "m." or "www.".
MozReview-Commit-ID: IObzp6LBovx
--HG--
extra : rebase_source : 02e1f1224854df4006f275a6877eb5cd6ecf8a78
This combines getBaseDomain & getHostSecondLevel domain and allows us to be
more flexible.
MozReview-Commit-ID: 7FdWsfZvGFt
--HG--
extra : rebase_source : eed9361fef02609776c772d21a004004a1d9d543