Open Bug 1903331 Opened 1 year ago Updated 1 year ago

Provide Thunderbird with a launcher process on Windows

Categories

(Thunderbird :: General, enhancement)

enhancement

Tracking

(Not tracked)

People

(Reporter: yannis, Unassigned)

References

(Blocks 1 open bug)

Details

(Whiteboard: thunderbird hardening backlog)

Firefox uses a launcher process on Windows. When a user starts firefox.exe, the resulting process will not be the main process of Firefox but a dedicated process whose role is to start the main process. There is a series of blogposts by Aaron Klotz here with some information about the implementation of Firefox's launcher process. The code for the launcher process mostly lives under browser/app/winlauncher, with extra conditional parts throughout the codebase based on the availability of MOZ_LAUNCHER_PROCESS which is itself conditionally defined based on the --enable-launcher-process switch in mozconfig.

Among other things, having a launcher process allows Firefox to block third-party DLLs very effectively. With a launcher process, the DLL blocklist can be set up before the main process even starts running. Without a launcher process, we use fallback DLL blocklist code that lives in mozglue, but this code is not active from the start of the process so it will fail to block DLLs that get loaded early. This disparity implies that when a third-party product crashes the main process of both Firefox and Thunderbird, a block of the DLL can be successful for Firefox but unsuccessful for Thunderbird. We are seeing this situation in bug 1901230 where a 4-5 years old successful block for Firefox is still causing trouble for Thunderbird to this day.

I believe that having the launcher process code live under browser/app/winlauncher makes it unavailable for Thunderbird. I tried an official build as well as a local build with --enable-launcher-process and I was unable to get a launcher process for Thunderbird. I am not completely sure what is required to get Thunderbird a launcher process, but I believe that the code in browser/app/winlauncher would be mostly usable as-is if it were moved to a part of the tree that would be available to Thunderbird.

Whiteboard: thunderbird hardening backlog
You need to log in before you can comment on or make changes to this bug.