Thunderbird:Road Map To XULRunner

From MozillaWiki
Jump to: navigation, search

<< Back to Thunderbird

The purpose of this page is to provide a guide to where various aspects of Thunderbird may proceed to unify it more with the core code base and list the advantages/disadvantages with the various steps.

This is not an agreed roadmap, nor is it a statement of what Thunderbird will definitely do.

Existing Thunderbird+XULRunner tracking bug: bug 306324

Link with libxul

Required Steps:

  1. bug 377319 Convert MailNews to frozen linkages
  2. Convert mail/ to frozen linkages (linux already done).
  3. Update build system

Advantages:

  • Uses the Frozen API, reduces impact of core changes.
  • The rework is touching a lot of old code, and some improvements are being made.

Disadvantages:

  • For TB to link with libxul, it cannot link as (mostly) one static library as it does now. Hence, startup times may be affected as you would now have 2(?) extra libraries.

Current State (20th May 2008):

Bug Code Area Compiles with Frozen Linkage? Links with Frozen Linkage?
  mailnews/addrbook Yes (Mac & Linux) Yes (Mac, without xpfe autocomplete code)
  mailnews/base/search Yes (Mac & Linux) Unknown (requires mailnews/base/src to compile first)
  mailnews/base/src No No
bug 407295 mailnews/base/util Yes (maybe one error in debug) Various link errors
bug 435881 mailnews/compose No No
  mailnews/db No No
  mailnews/extensions No No
  mailnews/imap No No
  mailnews/import Yes on Linux Yes on Linux
  mailnews/local No No
  mailnews/mapi No No
bug 410149 mailnews/mime Yes 2 link errors.
  mailnews/movemail No No
  mailnews/news No No

Move profile to equivalent Firefox location

Required Steps:

  1. bug 424641 Write the "migration" routine, change profile locations and update tinderbox configurations and scripts.

Note: bug 247973 also has various discussion.

Note: see [1] and [2] for what the intentions are and the implications.

Advantages:

  • Removal of application specific ifdefs
  • Less confusion for new users finding profiles

Disadvantages:

  • Some forward/backward version incompatibility if creating and/or deleting profiles.

Current State:

  • Patches ready, awaiting review from dmose before getting reviews & approvals for core parts.

Migrate from wallet to (toolkit's) Login Manager

Required Steps:

  1. bug 419590 Fix MailNews backend to provide good protocol and URI implementations that will work with Login Manager.
  2. bug 433316 Change MailNews backend to work with Login Manager.
  3. bug 239131 Thunderbird should use the new password manager (UI + build patch available).

Note to avoid complicated ifdefs, and because they need to as well, it is intended to switch SeaMonkey at the same time as Thunderbird. SeaMonkey UI bug is bug 390025 - UI already available.

Advantages:

  • Move to maintained code
  • Code move to nsIAuthPrompt2 following on from this, which would fix some bugs with password prompts not being serial in nature.
  • Easier for extensions to work with Thunderbird + Firefox

Disadvantages:

  • Must have protocol implementations for all protocols we implement (extra code).
  • Newer versions of TB wouldn't update the passwords file for older versions.

Current State:

  • Much of UI code in place
  • Item 1 needs the most investigation
  • Item 2 shouldn't be too hard.
  • May require some more core (toolkit) changes for password migration
  • Concerned about "x" protocols which are used as a crude cache password protection system (Standard8 to investigate more).

Migrate from xpfe autocomplete to toolkit's autocomplete

TB tracking bug bug 360648

Required Steps:

  1. bug 370306 Re-implement Address Book autocomplete backends (normal and LDAP) to implement the toolkit interfaces.
  2. Ensure toolkit autocomplete has options (attributes) required by MailNews, see dependencies of bug 360648
  3. Change Build configuration to build toolkit rather than xpfe autocomplete

Advantages:

  • Unification of autocomplete interfaces with toolkit
  • More code shared with core
  • Easier (?) to implement the new search autocomplete

Disadvantages:

..

Current State:

  • Autocomplete with "my domain" already working on toolkit interfaces.
  • Autocomplete for local address books patch in progress.
  • Maybe implement bug 433497 to reduce duplicate code before attempting full autocomplete replacement.

Ensure Thunderbird doesn't override core *.jar files

e.g. toolkit.jar

Required Steps:

  1. Unknown

Advantages:

  • toolkit code is toolkit, Thunderbird is Thunderbird, clear separation between the two.

Disadvantages:

  • possibly extra overlays.

Current State:

  • no progress.

Merge Build Configurations (final step)

This part is intended to merge the Thunderbird and xulrunner build configurations.

Required Steps:

  1. Get confvars.sh files to align where differences affect the build.
  2. Build everything in toolkit/core that we're not currently building (and check affect on TB).
  3. Change build configuration as required to provide linking with xulrunner etc.

Advantages:

  • xulrunner seems to be where Firefox/Gecko is going, so aligning ourselves with that will help future work.
  • May be able to share core xulrunner in the future.

Disadvantages:

  • Firefox isn't on xulrunner yet.
  • Extra items we're not currently using may cause bloat (amount unknown).

Current State:

  • No progress. Not worth doing until we've got all the other items on this page done.