CloudServices/Sync/FxSync/FaviconSync
< CloudServices | Sync | FxSync
Jump to navigation
Jump to search
Firefox (places.sqlite)
moz_places id guid url favicon_id -------> foreign key to moz_favicons.id ... moz_historyvisits id place_id ------> foreign key to moz_places.id visit_date ... moz_bookmarks id guid type fk ------> foreign key to moz_places.id ... moz_favicons id url data mime_type expiration guid (NEW) lastmodified (NEW?) <pre> = Sync = <pre> bookmarks id (a.k.a. GUID) bmkUri ... faviconGUID (NEW) history id (a.k.a. GUID) histUri title visits faviconGUID (NEW) favicons (NEW) id (a.k.a. GUID) url data mime_type expiration?
Proposal
- Implement
favicons
engine with above data schema. - Add
faviconGUID
property to bookmarks and history engines, it's synced as follows:
- Find favicon based on
faviconGUID
a. it exists. Go to 3.
b. it doesn't exist. Go to 2. - Create empty favicon entry with
id
andguid
. - Refer to favicon id in the
moz_places
entry.
Questions
- Is a blank entry in moz_favicons (cf. step 2 above) ok?
- How should we model the expiration (if at all)?
- How to access favicon data? Raw SQL r+w? Extend mozIAsyncHistory?
- How can we be notified when a new favicon is added or an existing one is changed?