nsIComponentRegistrar.
2. Converts callers of nsComponentManager::AutoRegister to use
nsIComponentRegistrar's autoRegistrar method.
3. Add nsIComponentRegistrar implmentation to nsComponentManagerImpl.
4. Rearrange nsComponentManager.cpp so that related methods are in the same
place.
5. Added a C-style function NS_GetComponentRegistrar so that getting the
registrar is easier in some places.
6. Added a nsISimpleEnumerator interface on PLDHashTableEnumeratorImpl. in
this way, the same base class can support both old style and new style
enumerations.
7. Fixed a nasty bug where unregistring factories will leave the contract id
hash with a dangling pointer. Now, when unregister is called we search the
contract id hash for entries which have the given doomned cid and remove them.
Bug 115853. r=dp@netscape.com, sr=rpotts@netscape.com
git-svn-id: svn://10.0.0.236/trunk@113143 18797224-902f-48f8-a5cc-f745e15eee43
a) create a new nsIComponentManager with only four functions on it:
CreateInstance CreateInstanceByContractID GetClassInfo GetClassInfoByContractID.
b) rename the old nsIComponentManager to nsIComponentManagerObsolete.
c) fixes callers which use to access the nsIComponentManager for component
registration functionality. These callers will temporary use the
nsIComponentManagerObsolete interface.
d) Create a new API NS_GetComponentManager() which mirrors the
NS_GetServiceManager()
e) Perserves the old NS_GetGlobalComponentManager(). Note the cast usage.
r/sr = rpotts@netscape.comalecf@netscape.combrendan@mozilla.org
git-svn-id: svn://10.0.0.236/trunk@110748 18797224-902f-48f8-a5cc-f745e15eee43
one. This will get fixed the right way along with other api changes
for component and servicemanager r=sfraser/dougt, sr=mscott
git-svn-id: svn://10.0.0.236/trunk@103669 18797224-902f-48f8-a5cc-f745e15eee43
data. Storing index into loader data array rather than allocating and
copying the type string. r=dougt, sr=jband, a=asa
git-svn-id: svn://10.0.0.236/trunk@102024 18797224-902f-48f8-a5cc-f745e15eee43
to call Components.manager.autoRefresh, but only with default params.
r=mstoltz, sr=jst.
git-svn-id: svn://10.0.0.236/trunk@99050 18797224-902f-48f8-a5cc-f745e15eee43
Added new functions to the registry for reading / writing byte arrays
of binary content and escaping registry keys that contain binary
content. Modified code which reads/writes location of dll or javascript
for components to use new ReadBytesUTF8/WriteBytesUTF8 and which uses
or reads the keys to use EscapeKey and UnescapeKey.
r=dveditz
git-svn-id: svn://10.0.0.236/trunk@69307 18797224-902f-48f8-a5cc-f745e15eee43
Bug 12817 no Autoreg (in optimized builds) unless xpinstall detects flag indicating install has happened or build number changed, r=dp, a=jar;
Bug 23859 add wstring API to nsIRegistry for profile manager/i18n, r=gayatrib, a=jar;
git-svn-id: svn://10.0.0.236/trunk@61370 18797224-902f-48f8-a5cc-f745e15eee43
later in the autoreg cycle.
- teach native component loader about deferred components
- add nsIComponentLoader::registerDeferredComponents
- teach component manager about deferred components
- made nsID::Parse take a |const char *| instead of a simple |char *|.
- move release of XPTI singletons until _after_ shutting down the component
manager to prevent re-initialization during JS component shutdown.
- category manager work: really delete from reg, start on enumeration
- use nsXPIDLCString instead of autoStringFree.
- fix nsRegistry to use allocator properly.
- cleaner memory management in nsFactoryEntry.
- capitalization fixed in nsIComponentLoader.idl
- clean up loader creation logic
- remove/disable lots of DEBUG_shaver noise
- added (disabled) warning about NSGetFactory usage
- move .so and .shlb higher up in the ValidDllExtensions list to marginally
speed up registration.
- added nsDll::GetRegistryLocation API
- properly export nsSupportsArray.h
- capitalization fixes in nsIEnumerator.idl
- added deferral to nsSample.js
git-svn-id: svn://10.0.0.236/trunk@53047 18797224-902f-48f8-a5cc-f745e15eee43
adding shutdown() method that gets called before the last
release. Enabled only for dp & shaver until we resolve js coredump.
git-svn-id: svn://10.0.0.236/trunk@51416 18797224-902f-48f8-a5cc-f745e15eee43
Made nsIModule::GetClassObject and nsIFactory scriptable for JS components.
Added registryLocation param to nsIModule::(Un)RegisterSelf.
git-svn-id: svn://10.0.0.236/trunk@46161 18797224-902f-48f8-a5cc-f745e15eee43
to reduce evil in universe.
Added nsIComponentManager::RegisterComponentLoader.
Dead code removal.
Make AutoRegister eagerly created all as-yet-unloaded component loaders and
AutoRegister with them as well.
Removed much #ifdef DEBUG_shaver noise.
git-svn-id: svn://10.0.0.236/trunk@45674 18797224-902f-48f8-a5cc-f745e15eee43
Factored ComponentManager to support multiple ComponentLoaders.
Added support for relative paths in registry.
General cleanup.
(Broke detection of changed DLLs; dp is fixing -- thanks!)
git-svn-id: svn://10.0.0.236/trunk@45355 18797224-902f-48f8-a5cc-f745e15eee43
- Adding UnregisterComponentSpec()
All the above are required for xpcom review.
git-svn-id: svn://10.0.0.236/trunk@43292 18797224-902f-48f8-a5cc-f745e15eee43
- GetFactoryEntry() factored out into a function
- Factory Cacheing enabled
- deletion of removed factory entries enabled
- Locks removed from FindFactory() and Register*()
git-svn-id: svn://10.0.0.236/trunk@38652 18797224-902f-48f8-a5cc-f745e15eee43