pjs/xpcom/doc/TODO.html

255 строки
5.5 KiB
HTML

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.51 [en] (WinNT; U) [Netscape]">
<meta name="Author" content="Suresh Duddi">
<title>TODO List for XPCOM</title>
</head>
<body>
<center>
<h1>
TODO List for XPCOM</h1></center>
<center>Last updated: 25 March 1999
<br><a href="mailto:dp@netscape.com">Suresh Duddi</a></center>
<table BORDER WIDTH="100%" NOSAVE >
<tr NOSAVE>
<th NOSAVE>Task</th>
<th NOSAVE><a href="http://bugzilla.mozilla.org/bug_status.html#priority">Priority</a></th>
<th NOSAVE>Owner</th>
<th NOSAVE>MileStone complete/Status</th>
</tr>
<tr BGCOLOR="#33CCFF" NOSAVE>
<td NOSAVE>Move xpcom from using NR_*() functions (modules/libreg) to nsIRegistry
(xpcom/src/nsRegistry.cpp)
<ul>
<li>
Mainly you want to change all the Platform*() functions in nsComponentManager.cpp</li>
<li>
Now we open/close the registry all the time. I want to keep the registry
open all the time. That would get performance up.</li>
<li>
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.</li>
</ul>
Mostly, there is equivalence between NR_*() calls and nsRegistry calls.&nbsp;</td>
<td>P2</td>
<td>Nick Ambrose &lt;<a href="mailto:nicka87@hotmail.com">nicka87@hotmail.com</a>></td>
<td>3/22/1999 started
<br>3/27/1999 Patch submitted
<br>3/30/1999 landing
<br><b>DONE</b></td>
</tr>
<tr BGCOLOR="#33CCFF">
<td>RegisterFactory() and RegisterComponent(..persist=0) ignoring PROGID.
Needs Fix.</td>
<td>P1</td>
<td>Nick Ambrose &lt;<a href="mailto:nicka87@hotmail.com">nicka87@hotmail.com</a>></td>
<td>4/6/1999 started
<br>4/7/1999 Patch submitted
<br>4/12/1999 Patch Checked in
<br><b>DONE</b></td>
</tr>
<tr>
<td>Startup components: Some components need to be created at startup.
Have a framework for them.</td>
<td>P1</td>
<td><a href="mailto:dp@netscape.com">Suresh Duddi</a></td>
<td></td>
</tr>
<tr>
<td>nsIRegistry access via Javascript.</td>
<td>P1</td>
<td></td>
<td>IDL of nsIRegistry will fix this says <a href="mailto:jband@netscape.com">John
Bandhauer</a></td>
</tr>
<tr BGCOLOR="#33CCFF" NOSAVE>
<td NOSAVE>API changes: Remove all pathlist. XPCOM should support only
paths.</td>
<td>P1</td>
<td><a href="mailto:dp@netscape.com">Suresh Duddi</a></td>
<td>4/2/1999 Checked in
<br><b>DONE</b></td>
</tr>
<tr>
<td>Fix xpcom from being initialized before main from static variables.</td>
<td>P1</td>
<td><a href="mailto:dp@netscape.com">Suresh Duddi</a></td>
<td>3/22/1999 Started.
<br>- checked in a fixed xpcom initialization sequence.
<br>- Now got to fix all code statically calling it. I know Netlib does.
<br>- 4/1/1999 Fixed netlib on unix from static intialization. WIN is left.</td>
</tr>
<tr>
<td>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.
<ul>
<li>
Possibly move autoreg out of xpcom</li>
</ul>
</td>
<td>P1</td>
<td><a href="mailto:dp@netscape.com">Suresh Duddi</a>
<br><a href="mailto:rjc@netscape.com">Robert Churchill</a></td>
<td>3/24/1999 started
<br><b>Blocked </b>on deciding which solution to pick.</td>
</tr>
<tr>
<td>Registry dump utility (regExport exists on windows) and about:registry
(or) better yet an rdf data source for the registry.</td>
<td>P3</td>
<td><a href="mailto:dp@netscape.com">Suresh Duddi</a></td>
<td>4/5/1999 Fixed regExport to accurately dump the registry on win and
unix.
<br>- regExport needs to be compiled on the mac.</td>
</tr>
<tr>
<td>Replace use of nsVector (PL_Vector) with nsISupportsArray</td>
<td>P3</td>
<td></td>
<td></td>
</tr>
<tr>
<td>PATH argument to NSRegisterSelf() and NSUnregisterSelf() to be a nsISupports</td>
<td>P1</td>
<td></td>
<td></td>
</tr>
<tr BGCOLOR="#33CCFF" NOSAVE>
<td NOSAVE>Code Cleanup:
<ul>
<li>
Registry path strings in nsComponentManager.cpp #defined</li>
</ul>
</td>
<td>P3</td>
<td>Nick Ambrose &lt;<a href="mailto:nicka87@hotmail.com">nicka87@hotmail.com</a>></td>
<td>4/1/1999 started
<br>4/5/1999 Patch submitted and checked in
<br><b>DONE</b></td>
</tr>
<tr BGCOLOR="#33CCFF">
<td>Performance
<ul>
<li>
Cache commonly used registry keys</li>
</ul>
</td>
<td>P1</td>
<td>Nick Ambrose &lt;<a href="mailto:nicka87@hotmail.com">nicka87@hotmail.com</a>></td>
<td>4/1/1999 started
<br>4/5/1999 Patch submitted and checked in
<br><b>DONE</b></td>
</tr>
<tr>
<td>Factories: Use previously created factories for object creation instead
of creating the factory everytime the object needs to be created.
<ul>
<li>
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.</li>
</ul>
</td>
<td>P2</td>
<td></td>
<td></td>
</tr>
<tr BGCOLOR="#33CCFF" NOSAVE>
<td NOSAVE>nsIAllocator: wrap it in a static api</td>
<td>P2</td>
<td><a href="mailto:jband@netscape.com">John Bandhauer</a></td>
<td NOSAVE>3/31/1999 started
<br>4/2/1999 Check in
<br><b>DONE</b></td>
</tr>
</table>
<h2>
Documentation on XPCOM</h2>
<ul>
<li>
<a href="TODO.html">TODO List</a> &lt;<i>this page></i></li>
<li>
XPCOM main page : <a href="http://www.mozilla.org/projects/xpcom">http://www.mozilla.org/projects/xpcom</a></li>
<li>
<a href="xpcom-code-faq.html">Code FAQ</a></li>
<li>
<a href="xpcom-component-registration.html">Component Registration</a></li>
</ul>
<hr WIDTH="100%">
</body>
</html>