74 Commits

Author SHA1 Message Date
dougt%netscape.com
011f9b10e5 1. Converts callers of nsIComponentManagerObsolete to use
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
2002-01-29 21:22:13 +00:00
dougt%netscape.com
c01e94cad7 nsIComponentManager API Changes (bug 98553)
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.com  alecf@netscape.com  brendan@mozilla.org


git-svn-id: svn://10.0.0.236/trunk@110748 18797224-902f-48f8-a5cc-f745e15eee43
2001-12-19 00:12:41 +00:00
kmcclusk%netscape.com
575a192c88 Backing out the fix for Bad use of nsIFile in component manager to fix spell checker. bug 106949 r=jband a=brendan
git-svn-id: svn://10.0.0.236/trunk@110446 18797224-902f-48f8-a5cc-f745e15eee43
2001-12-14 01:27:16 +00:00
pete%alphanumerica.com
ec5da21679 b=106949, r=ccarlen, sr=jband
Bad use of nsIFile in component manager

--pete


git-svn-id: svn://10.0.0.236/trunk@110210 18797224-902f-48f8-a5cc-f745e15eee43
2001-12-11 03:25:32 +00:00
neeti%netscape.com
4dc47433dd bug 106466 - Removed nsServiceEntry from ComponentManager, r=dougt, sr=brendan
git-svn-id: svn://10.0.0.236/trunk@108297 18797224-902f-48f8-a5cc-f745e15eee43
2001-11-16 13:53:04 +00:00
dp%netscape.com
5a69dc4d07 bug 108071 Eliminate 4000 calls to malloc by using copy getters of
registry. r=dveditz, sr=sfraser


git-svn-id: svn://10.0.0.236/trunk@108250 18797224-902f-48f8-a5cc-f745e15eee43
2001-11-16 02:38:23 +00:00
seawood%netscape.com
4551221bef Landing the rest of the mach-o OSX changes.
Bug #75653 r=cls sr=waterson


git-svn-id: svn://10.0.0.236/trunk@106461 18797224-902f-48f8-a5cc-f745e15eee43
2001-10-27 07:38:18 +00:00
neeti%netscape.com
b5893430a8 fix for bug 96461 - using PLDHash for ComponentManager,r=shaver@mozilla.org, sr=brendan@mozilla.org
git-svn-id: svn://10.0.0.236/trunk@106014 18797224-902f-48f8-a5cc-f745e15eee43
2001-10-23 02:28:12 +00:00
dougt%netscape.com
7afa8ce1d2 Allows a QI from nsIServiceManager to nsIServiceManagerObsolete. b=105136, r=beard, sr=darin
git-svn-id: svn://10.0.0.236/trunk@105560 18797224-902f-48f8-a5cc-f745e15eee43
2001-10-16 23:39:20 +00:00
dougt%netscape.com
2367cd653a API Freeze for nsIServiceManager r=shaver@mozilla.org, sr=rpotts@netscape.com bug 99147
git-svn-id: svn://10.0.0.236/trunk@105458 18797224-902f-48f8-a5cc-f745e15eee43
2001-10-16 03:35:52 +00:00
gerv%gerv.net
13afb6d0f9 Relicensing Round 1, Take 2. Most C-like NPL files -> NPL/GPL/LGPL. Bug 98089.
git-svn-id: svn://10.0.0.236/trunk@104119 18797224-902f-48f8-a5cc-f745e15eee43
2001-09-28 20:14:13 +00:00
dp%netscape.com
5928625a80 bug 100682 temporary way to get service without creating a new
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
2001-09-25 00:38:44 +00:00
dougt%netscape.com
6abd1d51a4 Merge ServiceManager and ComponentManager. Bug 96457. r=dp@netscape.com, sr=wat
erson@netscape.com


git-svn-id: svn://10.0.0.236/trunk@102449 18797224-902f-48f8-a5cc-f745e15eee43
2001-09-06 21:13:11 +00:00
valeski%netscape.com
8db35965a8 r=dbaron, sr=dougt. 97667. nsIInterfaceRequestor is now frozen. nsIInterfaceRequestorUtils.h is now required if you want to use do_GetInterface() for convenience. The two were split because the stuff that is now in nsIInterfaceRequestorUtils.h wasn't ready for freezing. Also, .idl files should just contain interface defs anyway.
git-svn-id: svn://10.0.0.236/trunk@102327 18797224-902f-48f8-a5cc-f745e15eee43
2001-09-05 21:28:38 +00:00
dp%netscape.com
dd5adbe141 bug# 96701 Using an array instead of hash table to store loader
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
2001-08-30 14:10:41 +00:00
dp%netscape.com
1c97d50450 bug 94883 nsCreateInstanceByContractID() performance improvement
git-svn-id: svn://10.0.0.236/trunk@101561 18797224-902f-48f8-a5cc-f745e15eee43
2001-08-21 22:42:35 +00:00
av%netscape.com
b6f5088ad1 Backing out existing fix for 87193 -- r=mstolz, sr=shaver, attinasi
git-svn-id: svn://10.0.0.236/trunk@99374 18797224-902f-48f8-a5cc-f745e15eee43
2001-07-17 02:24:16 +00:00
mstoltz%netscape.com
539425ad49 Checking in bug 87913 for jesse@netscape.com - Allow untrusted scripts
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
2001-07-11 04:48:55 +00:00
waterson%netscape.com
18986ada3f Land STATIC_BUILD_20010612_BRANCH, which supports building mozilla with components statically linked into the executable, as well as 'meta modules' that combine components into uber-DLLs.
git-svn-id: svn://10.0.0.236/trunk@97613 18797224-902f-48f8-a5cc-f745e15eee43
2001-06-20 20:21:49 +00:00
scc%mozilla.org
90f810b66a bug #85271: sr=waterson, r={beard, jag, dbaron}, a=asa. Eliminate features of |nsXPIDLC?String| that keep it out of the string hierarchy (i.e., using assigment to rebind ownership, static |Copy| members, and |getter_Shares|), fixing some leaks in the process.
git-svn-id: svn://10.0.0.236/trunk@97289 18797224-902f-48f8-a5cc-f745e15eee43
2001-06-17 05:23:38 +00:00
rayw%netscape.com
d9228441a4 Bug 37275, Changing value of all progids, and changing everywhere a progid
is mentioned to mention a contractid, including in identifiers.

r=warren


git-svn-id: svn://10.0.0.236/trunk@79036 18797224-902f-48f8-a5cc-f745e15eee43
2000-09-13 23:57:52 +00:00
kandrot%netscape.com
df46e3cf1c Fix for bug #46709
Allows registry buffer size to be modified.  Increases buffer size during
initial start up, then decreases size.

r=rayw


git-svn-id: svn://10.0.0.236/trunk@78470 18797224-902f-48f8-a5cc-f745e15eee43
2000-09-08 01:51:45 +00:00
rayw%netscape.com
90d0498159 Per bug 3690:
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
2000-05-12 01:24:36 +00:00
dveditz%netscape.com
4eddb0ee15 Bug 23941 speed up install on Mac, r=cathleen, a=jar;
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
2000-02-20 03:12:59 +00:00
dveditz%netscape.com
9f13883da5 registry speed ups (part of 12817)
git-svn-id: svn://10.0.0.236/trunk@61112 18797224-902f-48f8-a5cc-f745e15eee43
2000-02-16 07:45:20 +00:00
dougt%netscape.com
834bfb40d0 Fix for bug 25941. r=dp,scc.
git-svn-id: svn://10.0.0.236/trunk@59376 18797224-902f-48f8-a5cc-f745e15eee43
2000-02-01 07:54:46 +00:00
dougt%netscape.com
9b70d475ce Giving these files Purify loving. r=dveditz
git-svn-id: svn://10.0.0.236/trunk@59112 18797224-902f-48f8-a5cc-f745e15eee43
2000-01-28 23:37:27 +00:00
dougt%netscape.com
714da09a59 Landing nsIFile.
git-svn-id: svn://10.0.0.236/trunk@58490 18797224-902f-48f8-a5cc-f745e15eee43
2000-01-24 21:28:28 +00:00
dp%netscape.com
40adb96b8f Implementing access to servicemanager from component manager via
nsIInterfaceRequestor. r=scc


git-svn-id: svn://10.0.0.236/trunk@57455 18797224-902f-48f8-a5cc-f745e15eee43
2000-01-11 22:54:46 +00:00
beard%netscape.com
fed38c19f8 fix C string leak, bug=18699, r=shaver
git-svn-id: svn://10.0.0.236/trunk@53951 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-19 02:14:23 +00:00
shaver%netscape.com
6896473ece - NS_ERROR_FACTORY_REGISTER_AGAIN for deferring registration of a module until
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
1999-11-10 00:28:34 +00:00
dmose%mozilla.org
0efb7c174c updated xPL license boilerplate to v1.1, a=chofmann@netscape.com,r=endico@mozilla.org
git-svn-id: svn://10.0.0.236/trunk@52910 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-06 03:43:54 +00:00
dp%netscape.com
32ccfffb02 bug#14656 Circular release problem of component manager. Fixed by
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
1999-10-21 21:34:39 +00:00
scc%netscape.com
38a4215c26 Bug #15292, r=dp. Made the component manager inherit from |nsSupportsWeakReference|, fixed its |QueryInterface()| appropriately, and added casts in two places that became ambiguous now that the component manager had multiple |nsISupports| in it. Now one can hold a weak reference to the component manager using |nsIWeakReference|.
git-svn-id: svn://10.0.0.236/trunk@50853 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-15 21:14:43 +00:00
shaver%netscape.com
393d020282 nsIRegistry scriptability and beginning of category support, r=dp,alecf,dveditz a=leaf,chofmann
git-svn-id: svn://10.0.0.236/trunk@49272 18797224-902f-48f8-a5cc-f745e15eee43
1999-09-29 02:35:42 +00:00
dp%netscape.com
24f11a016d Passing down NS_Shutdown to Unloading of libraries.
git-svn-id: svn://10.0.0.236/trunk@49101 18797224-902f-48f8-a5cc-f745e15eee43
1999-09-26 18:04:27 +00:00
shaver%netscape.com
d13e0a7104 lose some DEBUG_shaver debugging noise
git-svn-id: svn://10.0.0.236/trunk@47584 18797224-902f-48f8-a5cc-f745e15eee43
1999-09-15 14:45:29 +00:00
shaver%netscape.com
d28ae6ecaf fix memory leaks (eep) and add some debugging noise for myself
git-svn-id: svn://10.0.0.236/trunk@46470 18797224-902f-48f8-a5cc-f745e15eee43
1999-09-09 00:48:30 +00:00
shaver%netscape.com
e40893df46 teach component manager that there are non-native entries in the registry
git-svn-id: svn://10.0.0.236/trunk@46237 18797224-902f-48f8-a5cc-f745e15eee43
1999-09-07 23:18:47 +00:00
shaver%netscape.com
955b7a1d60 Moved abs:/rel: handling to ComponentManager.
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
1999-09-07 05:06:37 +00:00
shaver%netscape.com
708e94e89e convert to CreateInstanceFromProgID
git-svn-id: svn://10.0.0.236/trunk@46048 18797224-902f-48f8-a5cc-f745e15eee43
1999-09-05 06:27:42 +00:00
shaver%netscape.com
ba0e48539e Added ComponentLoaders to registry and abandoned the progID suffix strategy
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
1999-09-02 07:00:29 +00:00
shaver%netscape.com
ac1d899ee3 Removed nsIFactory.h (generated now).
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
1999-08-31 21:40:21 +00:00
dp%netscape.com
b359dd631b PlatformFind() changed to return nsDll * instead of FactoryEntry. This
is an internal api change.


git-svn-id: svn://10.0.0.236/trunk@43884 18797224-902f-48f8-a5cc-f745e15eee43
1999-08-20 23:06:47 +00:00
dp%netscape.com
4ec4fd68a3 - Adding nsComponentMangager::GetClassObject()
- Adding a nsIID parameter to the nsIModule:GetClassObject()


git-svn-id: svn://10.0.0.236/trunk@43627 18797224-902f-48f8-a5cc-f745e15eee43
1999-08-19 14:54:12 +00:00
dp%netscape.com
4d630e99fa - using ComponentManager instead of service manager in nsIModule
- 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
1999-08-13 19:30:13 +00:00
jband%netscape.com
5630b79f6c adding enumeration of CLSIDs and ProgIDs using code from Robert Ginda <rginda@ix.netcom.com>
git-svn-id: svn://10.0.0.236/trunk@42738 18797224-902f-48f8-a5cc-f745e15eee43
1999-08-09 05:02:25 +00:00
dp%netscape.com
1afc4d334b - Added internal UnloadLibraries() that can take a NULL service
manager too for nsXPComShutdown()'s sake


git-svn-id: svn://10.0.0.236/trunk@41682 18797224-902f-48f8-a5cc-f745e15eee43
1999-07-31 05:55:26 +00:00
warren%netscape.com
9238d4066d Added destructor/cleanup code.
git-svn-id: svn://10.0.0.236/trunk@41451 18797224-902f-48f8-a5cc-f745e15eee43
1999-07-28 08:01:03 +00:00
dp%netscape.com
257065306c Landing XPCOM_M8_PERF_BRANCH.
- 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
1999-07-07 07:47:14 +00:00