Features/Thunderbird/Modern MIME Parser

From MozillaWiki
Jump to: navigation, search
Please use "Edit with form" above to edit this page.


Modern MIME Parser
Stage Draft
Status In progress
Release target Thunderbird 16
Health OK
Status note `


Product manager `
Directly Responsible Individual `
Lead engineer Joshua Cranmer
Security lead `
Privacy lead `
Localization lead `
Accessibility lead `
QA lead `
UX lead `
Product marketing lead `
Operations lead `
Additional members `

Open issues/risks


Stage 1: Definition

1. Feature overview

The current implementation of libmime is not maintainable, by combination of the library pushing the entire stack from parsing to display management logic into one single system and the implementation in an obfuscatory style of C. The goal of this project is to provide a new implementation of the parsing logic which is more accessible to other people.

2. Users & use cases

The new implementation should be easily usable and drivable from JS, and have at least a usable API from C++. These are the kinds of tasks we envision supporting: 1. Use in the fakeservers where understanding MIME is necessary 2. Things like Gloda that need an accurate representation of the MIME tree

3. Dependencies


4. Requirements



This feature is intended to eventually replace libmime in the long run. However, replacing the current code in libmime is not a goal in this iteration.

In this iteration, the following features will be unsupported to keep the implementation manageable: 1. RFC 2047/RFC 2231 decoding (all i18n concerns, basically) 2. Support for uuencode, yEnc, S/MIME, PGP

Stage 2: Design

5. Functional specification


6. User experience design


Stage 3: Planning

7. Implementation plan


8. Reviews

Security review

A MIME fuzzer should be developed at some part in this process.

Privacy review


Localization review

l10n and i18n are explicit non-goals for now.



Quality Assurance review

We need some way of checking that the new parser and libmime return the same results.

Operations review


Stage 4: Development

9. Implementation


Stage 5: Release

10. Landing criteria


Feature details

Priority Unprioritized
Rank 999
Theme / Goal `
Roadmap Thunderbird
Secondary roadmap `
Feature list Thunderbird
Project `
Engineering team `

Team status notes

  status notes
Products ` `
Engineering ` bug 746052
Security sec-review-needed bug 744952
Privacy ` `
Localization ` `
Accessibility ` `
Quality assurance ` `
User experience ` `
Product marketing ` `
Operations ` `