Closed Bug 943798 Opened 12 years ago Closed 8 years ago

[email] Asynchronously stream downloaded attachments to disk/IndexedDB using FileHandle to reduce memory usage, allow downloading huge attachments

Categories

(Firefox OS Graveyard :: Gaia::E-Mail, defect, P2)

ARM
Gonk (Firefox OS)
defect

Tracking

(tracking-b2g:backlog, b2g1828+)

RESOLVED WONTFIX
tracking-b2g backlog
Tracking Status
b2g18 28+ ---

People

(Reporter: asuth, Unassigned)

References

Details

(Keywords: perf, Whiteboard: [c=memory p= s= u=] [MemShrink:P2])

This is being spun off of bug 894834 about the e-mail app downloading if it tries to download large attachments. As mentioned in https://bugzilla.mozilla.org/show_bug.cgi?id=894834#c2 and the thread referenced at https://groups.google.com/d/msg/mozilla.dev.b2g/N8aHf8AN1mk/qgIxJ9CwoRcJ the biggest problem to solving this the right way is that we can't use FileHandle with IndexedDB in B2G sub-processes to incrementally write the file to disk. Note that there are various things we can do from a purely JS perspective to reduce our peak memory footprint given platform limitations. And there are also workarounds we can perform like writing the attachments to disk in medium sized chunks (ex: 512KiB) and then later join them up into a single Blob by creating a super-Blob, analogous to what we do in bug 871897 for streaming send. Addressing this in platform is probably the best use of manpower. Note that we can do some partial work on this bug to reduce our memory footprint before having the full platform support; the changes are synergistic. (However we should not make those changes in JS until we've changes our MIME parser situation so the effort doesn't need to happen twice, etc.)
See Also: → 894834
blocking-b2g: --- → 1.3?
For triage: the platform changes required for this are likely non-trivial and seem risky for uplift to the 1.3 branch in the train model. Suggest making sure this is in the product queue for the platform team and making sure they understand this impacts e-mail in this way and leaving it to them to do the heavy lifting.
triage: cannot block on this as we are fundamentally blocked by platform issues (bug 771288). tracking this as it would be good to have but cannot make progress at this time
blocking-b2g: 1.3? → -
blocking-b2g: - → backlog
Blocks: 972632
Add the DeviceStorage variants bug 859696 and bug 855952 since we could also use DeviceStorage for these purposes. DeviceStorage requires slightly more legwork for cleanup purposes, but in all cases we do need some crash/closed-recovery logic for partial downloads.
Depends on: 859696, 855952
Whiteboard: [MemShrink:P2]
Keywords: perf
OS: Linux → Gonk (Firefox OS)
Priority: -- → P2
Hardware: x86_64 → ARM
Whiteboard: [MemShrink:P2] → [c=memory p= s= u=] [MemShrink:P2]
blocking-b2g: backlog → ---
Closing out old Firefox OS specific memshrink bugs.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.