113
edits
(Added Implementation, Incommunicado and Other concerns sections) |
(Added related bugs and milestones sections) |
||
| Line 46: | Line 46: | ||
Although poor handling of MIME parts is a major obstacle to minimising bandwidth usage in TB it is also the most difficult to address. To get immediate results a low-hanging fruit approach is proposed, in rough order of priority: | Although poor handling of MIME parts is a major obstacle to minimising bandwidth usage in TB it is also the most difficult to address. To get immediate results a low-hanging fruit approach is proposed, in rough order of priority: | ||
1) Add on/off/on-demand features to auto-sync | 1) Add on/off/on-demand features to auto-sync giving user full control of when sync takes place | ||
2) User configurable auto-syncs strategies to prioritise and include/exclude messages downloaded by auto-sync | 2) User configurable auto-syncs strategies to prioritise and include/exclude messages downloaded by auto-sync | ||
| Line 53: | Line 53: | ||
: a) Caching of large MIME parts e.g. attachments | : a) Caching of large MIME parts e.g. attachments | ||
: b) Support for offline storage of MIME parts | : b) Support for offline storage of MIME parts | ||
=== Related Bugs === | |||
Implementing these features, particularly 3a) and 3b), will have the side benefit of fixing (or partly fixing) a number of existing bugs related to messages or message parts being repeatedly downloaded: | |||
* {{bug|345832}} - IMAP attachments preloading (not on demand) | |||
* {{bug|439731}} - Reloading of read messages when using IMAP account (enable disk cache) | |||
* {{bug|405437}} - IMAP mail are not cached for offline use if message size is bigger than mail.imap.mime_parts_on_demand_threshold | |||
=== How To Do It === | === How To Do It === | ||
| Line 58: | Line 66: | ||
With the exception of on-demand sync 1) and 2) can be implemented using strategies. These features and more will be supported in an extension, 'Incommunicado' (see below). | With the exception of on-demand sync 1) and 2) can be implemented using strategies. These features and more will be supported in an extension, 'Incommunicado' (see below). | ||
On-demand sync however requires some development. [[User:Emre]] has proposed the following implementation: | On-demand auto-sync (an oxymoron I know) however requires some development. [[User:Emre|Emre]] has proposed the following implementation: | ||
* Add a new operation mode (lets say on-demand) to nsAutoSyncManager. | * Add a new operation mode (lets say on-demand) to nsAutoSyncManager. | ||
* Add new method to nsAutoSyncManager to explicitly tell to re-prioritize the queue. | * Add new method to nsAutoSyncManager to explicitly tell to re-prioritize the queue. | ||
| Line 64: | Line 72: | ||
* When running in this mode, nsAutoSyncManager should keep downloading all pending messages until either it is all done, or the user explicitly says STOP. | * When running in this mode, nsAutoSyncManager should keep downloading all pending messages until either it is all done, or the user explicitly says STOP. | ||
Addressing 3) is non-trivial and will be tackled at a later stage, in the meantime it may be possible to avoid current problems by increasing the cache size and configuring it to save to disk rather than memory ([https://bugzilla.mozilla.org/show_bug.cgi?id=439731#c12 bug 439731 #12]). | |||
=== Milestones === | |||
'''Thunderbird 3.0b2:''' | |||
* on-demand auto-sync | |||
* auto-sync strategy to exclude messages greater than MAX_SIZE (Incommunicado) | |||
* on/off/on-demand auto-sync UI (Incommunicado) | |||
'''Thunderbird 3.0pre1:''' | |||
* save cache to disk and increase size [https://bugzilla.mozilla.org/show_bug.cgi?id=439731#c12 bug 439731 #12]. (Temporary fix) | |||
* priority auto-sync folders (Incommunicado) | |||
* advanced on-demand auto-sync runtime dialog (Incommunicado) | |||
** priority folders only | |||
** select alternate strategy (e.g. sync all messages) | |||
'''February/March 2009:''' | |||
* support MIME parts in offline store | |||
* always cache messages or message parts '''not''' saved in offline store | |||
* better coordination between cache and offline store (e.g. no duplication) | |||
== Incommunicado Extension == | == Incommunicado Extension == | ||
edits