# TODO List for XPCOM

Last updated: 25 March 1999
Suresh Duddi

Task | Priority | Owner | MileStone complete/Status
--- | --- | --- | ---
Move xpcom from using NR_*() functions (modules/libreg) to nsIRegistry (xpcom/src/nsRegistry.cpp) Mainly you want to change all the Platform*() functions in nsComponentManager.cpp Now we open/close the registry all the time. I want to keep the registry open all the time. That would get performance up. Platform*() functions use the NR_*Raw() functions in some places. I wonder if the nsRegistry has a equivalent. If not we need to create them. Mostly, there is equivalence between NR_*() calls and nsRegistry calls. | P2 | Nick Ambrose <nicka87@hotmail.com> | 3/22/1999 started 3/27/1999 Patch submitted 3/30/1999 landing DONE
RegisterFactory() and RegisterComponent(..persist=0) ignoring CONTRACTID. Needs Fix. | P1 | Nick Ambrose <nicka87@hotmail.com> | 4/6/1999 started 4/7/1999 Patch submitted 4/12/1999 Patch Checked in DONE
Startup components: Some components need to be created at startup. Have a framework for them. | P1 | Suresh Duddi |
nsIRegistry access via Javascript. | P1 |  | IDL of nsIRegistry will fix this says John Bandhauer
API changes: Remove all pathlist. XPCOM should support only paths. | P1 | Suresh Duddi | 4/2/1999 Checked in DONE
Fix xpcom from being initialized before main from static variables. | P1 | Suresh Duddi | 3/22/1999 Started. - checked in a fixed xpcom initialization sequence. - Now got to fix all code statically calling it. I know Netlib does. - 4/1/1999 Fixed netlib on unix from static intialization. WIN is left.
Path handling: Use nsFileSpec instead of file path names. Char * pathnames are not intl, and cannot be stored in the registry. Plus that wont support mac aliases. Possibly move autoreg out of xpcom | P1 | Suresh Duddi Robert Churchill | 3/24/1999 started Blocked on deciding which solution to pick.
Registry dump utility (regExport exists on windows) and about:registry (or) better yet an rdf data source for the registry. | P3 | Suresh Duddi | 4/5/1999 Fixed regExport to accurately dump the registry on win and unix. - regExport needs to be compiled on the mac.
Replace use of nsVector (PL_Vector) with nsISupportsArray | P3 |  |
PATH argument to NSRegisterSelf() and NSUnregisterSelf() to be a nsISupports | P1 |  |
Code Cleanup: Registry path strings in nsComponentManager.cpp #defined | P3 | Nick Ambrose <nicka87@hotmail.com> | 4/1/1999 started 4/5/1999 Patch submitted and checked in DONE
Performance Cache commonly used registry keys | P1 | Nick Ambrose <nicka87@hotmail.com> | 4/1/1999 started 4/5/1999 Patch submitted and checked in DONE
Factories: Use previously created factories for object creation instead of creating the factory everytime the object needs to be created. This is very tricky as the factory is owned by the component and when it decides to unload itself on a CanUnload() call, the factory will be released. Got to make sure that the component manager gets notified of this if it caches the factory. | P2 |  |
nsIAllocator: wrap it in a static api | P2 | John Bandhauer | 3/31/1999 started 4/2/1999 Check in DONE

## Documentation on XPCOM

- TODO List <this page>
- XPCOM main page : http://www.mozilla.org/projects/xpcom
- Code FAQ
- Component Registration