XPCOM/Bootstrap: Difference between revisions

Jump to navigation Jump to search
done
(Getting XPCOM bootstrapped better)
 
(done)
Line 1: Line 1:
The XPCOM bootstrap process is overly complicated and time-consuming. I'd like to take the following actions to simplify it:
The XPCOM bootstrap process is overly complicated and time-consuming. I'd like to take the following actions to simplify it:


== Unification ==
This work is complete, NS_InitEmbedding has been removed.
 
Unify the XPCOM bootstrap code so that all clients either use XRE_main or XRE_InitEmbedding, and remove NS_InitEmbedding and NS_InitXPCOM
 
There are currently three ways for embedders to use the Mozilla plaform:
 
* Call NS_InitXPCOM directly
* Call XRE_InitEmbedding
* Call NS_InitEmbedding and link the static embedding library
 
Of these, only XRE_InitEmbedding is recommended. The multiple codepaths in the current codebase mean that embedders who don't go through XRE_InitEmbedding often get strange bugs.
 
NS_InitXPCOM* was considered a frozen API, but is not used by components or extensions. I think we should remove it in the 1.9.2 cycle irrespective of whether we change other frozen APIs and make a clean break to mozilla 2.
 
This will involve combining xpcom/build and toolkit/xre in some way. The exact location and dependencies are not yet designed.
 
Migration: many of our in-tree test programs currently use NS_InitXPCOM. They must be migrated to XRE_InitEmbedding. This migration is not hard.


== State Management ==
== State Management ==
Confirmed users, Bureaucrats and Sysops emeriti
1,217

edits

Navigation menu