Hi,
so far, we've been building our bookmarks/history/favicon accesses
through an abstract API (BrowserDB) that maps either to Android's
bookmarks/history DB (AndroidDB) or to our own private, local database
(LocalDB).
As far as I understand, Sync doesn't actually use this API, but uses
BrowserProvider (LocalDB) directly to get access to a more extensive
schema than is available on the Android DB.
The disconnect is now hurting us in a few areas, for example Profile
Migration limits itself to what is available in BrowserDB. This causes
the migrated stuff to be duplicated in Sync (who can't detect that its
duplicated). The proposed solution was to let migration give up on
supporting AndroidDB, and import the stuff that Sync needs:
https://bugzilla.mozilla.org/show_bug.cgi?id=716918
(because part of what migration does is to simplify the places schema
into an Android schema, this isn't just a question of swapping out the
DB backend)
Likewise, Sync needs some features in BrowserProvider that were actually
implemented a week ago in the BrowserDB (that it doesn't use):
https://bugzilla.mozilla.org/show_bug.cgi?id=721898
I queried several people about what the plans where, and got some
conflicting answers. So in an attempt to make sure everybody is aligned
here:
a) Do we still want to be able to offer the switch to use AndroidDB over
LocalDB? Or do we commit fully to LocalDB? (making BrowserDB API
somewhat obsolete)
b) If we want to offer AndroidDB, have we thought about how to mix its
limited schema with what Sync actually needs? Questions like that still
seem entirely open here:
https://bugzilla.mozilla.org/show_bug.cgi?id=708005
c) If we want to offer AndroidDB, but import bookmarks/history with more
information into BrowserProvider (either Sync or Migration), how is the
extended data reduced to AndroidDB schema if that is enabled? Another
migration? What about the other way around (bookmarks added in native
browser)?
--
GCP