Closed Bug 909935 Opened 6 years ago Closed 2 years ago

[Contacts] Implement a streaming cursor approach for the contacts list


(Firefox OS Graveyard :: Gaia::Contacts, defect, P2)

Gonk (Firefox OS)



blocking-b2g -


(Reporter: kgrandon, Assigned: kgrandon)



(Keywords: perf, Whiteboard: [c= p=5 s= u=])

A streaming list in contacts should be able to outperform the current implementation.

We prototyped this, and with thousands of contacts you are able to jump to any letter immediately on load. The current app takes several seconds to make a jump. This is likely due to loading all of the contacts at once before we can jump. With a streaming approach we should only ever have to wait on what we need to display.
Depends on: 909454
Depends on: 909948
WIP patch is coming soon. Here's some additional benefits I've noticed:

1 - Faster first display of contacts. The white flash is much reduced, it could be due to a reduction of resource loading, but I feel that we are able to display the initial list much quicker.
2 - Able to jump to 'Z' character immediately with the prototype. This takes around 30 seconds or so with 2,000 contacts on a device in master.
3 - Images load immediately. I don't have facebook implemented yet, but images from the contacts object display instantly. I'm not sure what's needed for facebook contacts, but it would be nice if we could cache the images in the same way that we do for normal contacts.
Depends on: 912776
Blocks: 871823
Blocks: 894751
Whiteboard: [c= p= s= u=] → [c= p=5 s= u=]
No longer blocks: 909929
Depends on: 871846
Nom'ing for 1.3 to determine if the comms team would like to include this or something like it in their roadmap for the next release.
blocking-b2g: --- → 1.3?
Target Milestone: --- → 1.2 C3(Oct25)
comms triage: let perf team decide on this one
triage: not blocking. please land in master when patch is available
blocking-b2g: 1.3? → -
From our meeting at Oslo it sounds like we need one of the following two options to occur:

  1) A bunch of mozContacts API improvements to support the streaming approach.  (See deps here.)
  2) Convert contacts app to use Datastore so that we can use IDB directly.

Since neither option is going to occur soon, this is not going to hit any milestones in the near future.  Also, it looks like (2) is more likely at this point as contacts FB support is getting converted to datastore now as a first step.
Target Milestone: 1.2 C3(Oct25) → ---
See Also: → 865741
Priority: -- → P2
Firefox OS is not being worked on
Closed: 2 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.