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