If you think a bug might affect users in the 57 release, please set the correct tracking and status flags for Release Management.

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

ASSIGNED
Assigned to

Status

Firefox OS
Gaia::Contacts
P2
normal
ASSIGNED
4 years ago
3 years ago

People

(Reporter: kgrandon, Assigned: kgrandon)

Tracking

(Depends on: 1 bug, Blocks: 1 bug, {perf})

unspecified
ARM
Gonk (Firefox OS)
Dependency tree / graph

Firefox Tracking Flags

(blocking-b2g:-)

Details

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

(Assignee)

Description

4 years ago
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.
(Assignee)

Updated

4 years ago
Depends on: 909454
(Assignee)

Updated

4 years ago
Depends on: 909948
(Assignee)

Comment 1

4 years ago
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.
(Assignee)

Updated

4 years ago
Status: NEW → ASSIGNED
(Assignee)

Updated

4 years ago
Depends on: 912776
(Assignee)

Updated

4 years ago
Blocks: 871823

Updated

4 years ago
Blocks: 894751
(Assignee)

Updated

4 years ago
Whiteboard: [c= p= s= u=] → [c= p=5 s= u=]
(Assignee)

Updated

4 years ago
No longer blocks: 909929
(Assignee)

Updated

4 years ago
Depends on: 871846

Comment 2

4 years ago
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? → -

Comment 5

4 years ago
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) → ---

Updated

4 years ago
See Also: → bug 865741

Updated

4 years ago
Priority: -- → P2
You need to log in before you can comment on or make changes to this bug.