Open Bug 564765 Opened 14 years ago Updated 2 years ago

Migration and Import structure needs re-designing

Categories

(MailNews Core :: Import, defect)

defect

Tracking

(Not tracked)

People

(Reporter: standard8, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: helpwanted)

Currently we have:

mailnews/import
---------------

This is the main import code. This has its own UI for some aspects of import (e.g. settings, address book etc).

The worker code generally handles mainly import, but in the case of third party apps, also appears to handle migration.

mail/components/migration (or suite/profile/migration)
------------------------------------------------------

This is the main migration code. It has its own UI for providing the migration.

It is called from the mailnews/import code for "Import Everything". This is conceptually wrong as there's no flag to tell the migration assistant that it is importing and can lead to dataloss (bug 564162).

The UI also has options to act as an importer for specific subsets, e.g. in SeaMonkey the same code handles bookmarks import (into a running SM) and profile migration.

The code for 3rd party migration just calls into mailnews/import. The similar-app migration code is written in the migration component.


Proposed Rework/Redesign
------------------------

Single Migration UI
- Drop the UI code in mailnews/import. The migration controls both migration and import. Rework the existing migration code to allow importing of just address books, mail, settings etc.

Code restructure.
- I'm not sure if there is much that makes sense here without looking at the interfaces, but once the single migration UI is done, there may be sensible restructuring to do to better balance the mailnews/import and mail/components/migration back-end code.
Blocks: 564767
Import/Migration doesn't carry much unit-tests, adding them while redesigning it would make regression catching with these portions of the code way easier and way faster.
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.