Commit Graph

172 Commits

Author SHA1 Message Date
Benjamin Smedberg
c3f5b450d3 Bug 568691 - Fix MOZ_OMNIJAR registration, r=mwu 2010-07-02 09:53:19 -04:00
Benjamin Smedberg
2115ff7b10 Require XPT files to be loaded explicitly: they are never auto-registered when found in a components/ directory. 2010-06-29 18:16:48 -04:00
Benjamin Smedberg
196f9d1675 Fix and test logging of manifest parsing and registration. I discovered that the outer loop doesn't track line numbers correctly when there are multiple newlines in a row, which requires manual looping instead of using nsCRT::strtok. 2010-06-28 13:55:57 -04:00
Benjamin Smedberg
e507d10498 Bug 568691 - Normalize relative paths on Windows to use back slashes, and add a manifest processing directive for XPT files so that extension chrome.manifest can point to them and we don't have to troll around in extension components/ directories. 2010-06-25 13:55:46 -04:00
Benjamin Smedberg
ae66b12077 Bug 568691, followup to RegisterFactory implementation: make the nsFactoryEntry hold a CIDEntry with the proper CID, because code elsewhere expects that to be present (ContractIDToCID and the pending-CID checks). 2010-06-25 10:44:35 -04:00
Benjamin Smedberg
14ddc8858d Remove hard tabs which I accidentally introduced into nsComponentManager.{h,cpp}. 2010-06-23 13:36:53 -04:00
Benjamin Smedberg
c410913dc1 Implement RereadChromeManifests for bug 568691. 2010-06-22 16:24:01 -04:00
Benjamin Smedberg
726d0cfc47 Address review comments from bug 568691 comment 13/14/17:
* rename mozilla::Module struct entries to be clearer
* change Module documentation so that the last entry is { NULL } in all cases (the compiler will 0-expand the structure)
* remove NS_XPCOM_COMPONENT_REGISTRY_FILE
* add MOZ_MEDIA/MOZ_OGG/MOZ_WAVE/MOZ_WEBM ifdefs to nsHTMLMediaElement.h and nsContentUtils.cpp
2010-06-21 12:46:26 -04:00
Benjamin Smedberg
2ebeafd362 Merge mozilla-central into the "branch" for but 568691. The omnijar XPT/component/chrome registration was removed during this merge, and will be re-added to the component manager shortly. 2010-06-21 11:41:42 -04:00
Benjamin Smedberg
d2fcac6b2a Bug 568691 part C - Register all components based on reading .manifest files from the components directories. Binary components auto-register using "binary-component name.dll". JS components register using "component CID file.js" "contract @mozilla.org/contract;1 CID" and "category categoryname keyname value".
This patch has some bugs, specifically we stop looking for .manifest files in chrome/. I will fix that in a followup. It also probably breaks non-libxul builds because of ordering issues.

Another followup will actually fix our in-tree JS components and add build machinery for creating a proper components.manifest file.
2010-06-11 16:13:26 -04:00
Benjamin Smedberg
0e824d90bb Bug 568691 part A - register static and binary components using data tables rather than programmatic nsIComponentRegistrar methods. This part contains the important needs-review bits of the change: part B contains the mechanical changes to each module in order to actually get a working build. Part C will contain changes necessary to register JS components from .manifest files 2010-06-10 14:11:11 -04:00
Michael Wu
e1047fa362 Bug 552121 - Load js modules and components from the omnijar [7/7], r=bsmedberg 2010-06-15 12:38:46 -07:00
Benjamin Smedberg
5e5b33e904 Bug 519357 - Only load known binary components from the app directory by reading a components.list file, r=vlad 2009-11-05 09:08:49 -05:00
Sergey Yanovich
1eb9f303d0 Bug 462497. Don't reacquire a monitor in nsComponentManagerImpl::HashContractID that we already hold. r=bsmedberg 2009-01-08 21:41:55 +13:00
Ben Turner
288e486cf1 Bug 449822 - "Service manager can create two instances of a service". r=bsmedberg. 2008-09-04 15:44:41 -07:00
7b34ae7602 Back out bug 412320 and various followups because the perf impact was minimal and the code is more complicated 2008-02-21 12:39:20 -08:00
db8d572868 Bug 412320 - Try code-generation for QI impls, r=roc+luser 2008-01-25 09:14:48 -08:00
bsmedberg@covad.net
8e60d2c8d4 Re-landing bug 316416 with biesi's uninitialized-rv catch and with the windows nsIFile hashing cached (bug 316732) 2005-12-13 17:55:43 +00:00
bsmedberg@covad.net
6bad7c90d3 Reverting bug 316416 due to Ts regression and mysterious monkey orange :-( 2005-12-03 15:27:17 +00:00
bsmedberg@covad.net
489c776123 Bug 316416 - Convert nsIComponentLoader into nsIModuleLoader, xpcom bits r=darin xpconnect bits r=shaver; and bug 318625 - Make a version of nsTArray.AppendElement that doesn't copy-construct, r=darin 2005-12-02 16:34:42 +00:00
bsmedberg@covad.net
4aa213f9ae Bug 316558 - Stop implementing a few old nsIComponentManagerObsolete methods, r=darin 2005-11-15 20:15:05 +00:00
bsmedberg@covad.net
df1a9ad1b8 Bug 296561 - rework static component loading so that nsIXULAppInfo/Runtime/etc are available during autoregistration/xpcom-startup notification (and make static component loading saner in general) - r=shaver+dougt, a=asa 2005-07-21 13:33:43 +00:00
bsmedberg@covad.net
1771b490e2 Bug 282761 - crash if getClassObject "succeeds" but returns null r=dougt 2005-02-19 14:43:42 +00:00
darin@meer.net
b9a22224f6 fixes bug 263360 "Make CallCreateInstance use NS_GetComponentManager instead of nonfrozen/deprecated nsComponentManager symbols" r=bsmedberg sr=dbaron 2004-11-23 20:53:38 +00:00
bzbarsky@mit.edu
5608945d45 Don't store "no such component" entries in the hashtable when a contractid
lookup fails.  Now that we preload the registry, that serves no purpose.  Bug
230776, patch by Malcolm Rowe <malcolm-bmo@farside.org.uk>, r=dougt, sr=alecf
2004-04-18 17:35:29 +00:00
gerv@gerv.net
c0cd46fc51 Bug 236613: change to MPL/LGPL/GPL tri-license. 2004-04-18 14:21:17 +00:00
scott@scott-macgregor.org
717aefc968 Back out the backout of Bug #235882. It looks like dbaron's leak fix actually fixed the regressions the component manager
changes caused for JS components.
2004-03-10 06:40:36 +00:00
scott@scott-macgregor.org
3442c57c9f Backout Bug #235882. This broke the component manager's ability to load JS components leading to several regressions,
most noticeably: Bug #236952.
2004-03-10 06:11:10 +00:00
timeless@mozdev.org
603ca03a9e Bug 235882 Make nsComponentManagerImpl::AddLoaderType return only one type of value
r=dougt
2004-03-09 07:09:52 +00:00
bryner@brianryner.com
73c3254bfa Continuing removal of unneeded virtual destructors (bug 229875). r=dougt, sr=dbaron. 2004-01-22 01:01:19 +00:00
bryner@brianryner.com
3736b6e206 Bug 229875 - eliminate unnecssary public/virtual destructors. This patch changes all refcounted classes under xpcom/, which aren't inherited from or used on the stack, to have private, nonvirtual destructors. r=dougt, sr=dbaron. 2004-01-15 06:14:18 +00:00
bsmedberg@covad.net
4baf331386 Fix static build bustage from bug 223084 - r=bryner Sorry about that! 2003-10-31 20:50:22 +00:00
dougt@meer.net
f09eff5661 Enables debug stackcrawl support in GRE builds. b=208098. r=dbaron. 2003-07-07 22:11:36 +00:00
seawood@netscape.com
45303a5858 Make user-specific application directory name configurable using --with-user-appdir.
Thanks to Ben Bucksch <ben.bucksch@beonex.com> for the original patch.
Bug #58327 r=dougt
2003-07-01 18:32:49 +00:00
bsmedberg@covad.net
92d9617dd5 Bug 193031 fix category manager to use aPersist parameter. Bug 54639 Category Manager is not thread-safe. Bug 208437 separate threadsafe nsBaseHashtable into super-class nsBaseHashtableMT. r=dougt/alecf I know Sun Workshop builds are still broken... working on it. 2003-06-18 11:26:27 +00:00
dougt@meer.net
2e63d94e9d Stacks nsFactoryEntry's so that we can support overloading factories a bit better. r=darin, a=blizzard, b=204870 2003-05-13 22:50:03 +00:00
alecf@netscape.com
b119b32b00 fix for bug 196210, component manager is malloc-happy:
- use custom non-allocating CID formatter when writing out compreg.dat
- arena allocate category names and keys
- pass around string lengths so we don't keep calling strlen
r=dougt
2003-03-14 05:07:24 +00:00
dougt@netscape.com
54b1236275 Adding debug support to detect reentrant create instance patterns, r+sr=alecf@netscape.com, b=194568 2003-03-12 03:58:33 +00:00
dougt@netscape.com
b9e6f9b823 Converting the file location of the component registry and the xpti manifest file to use the directory service. r=darin, b=191055 2003-03-11 21:36:59 +00:00
dougt@netscape.com
6a0e2d5228 relanding. Add experimental support to the native component loader so that native components can declare what libraries it depends on. (193442)Fixed a bug where we didn't check return from GetLastModification in nsDll::HasChanged. Thank you ajschult@eos.ncsu.edu for pointing out the problem and suggesting a fix. Converted a linear search of compreg entries to be a hash lookup. Also cleaned up the xcdll class. Reviewers= Alec, Darin. 2003-03-05 03:22:12 +00:00
tor@cs.brown.edu
d0bca9a770 Backout of 193442/191415. a=brade,dougt 2003-03-03 21:00:07 +00:00
dougt@netscape.com
bde93f77ba backing out last change - using linear list does not change the start up time. 2003-03-03 03:26:02 +00:00
dougt@netscape.com
d0b57db9ca Reverting mAutoRegEntries hashtable change. I believe it was responsible for the bulk of the 200ms spike. b=195494. 2003-03-03 01:19:58 +00:00
dougt@netscape.com
6f1eaa830d Add experimental support to the native component loader so that native components can declare what libraries it depends on. (193442) Storing the GRE location in a relative way so that we can change GRE versions between launches assuming that they are compatible (191415). Fixed a bug where we didn't check return from GetLastModification in nsDll::HasChanged. Thank you ajschult@eos.ncsu.edu for pointing out the problem and suggesting a fix. Converted a linear search of compreg entries to be a hash lookup. Also cleaned up the xcdll class. Reviewers= Alec, Darin. 2003-02-28 21:30:35 +00:00
dougt@netscape.com
37bab56a32 xpcom is unable to always load .js component file. r=ssu, sr=alecf, a=rjesup, b=190560 build/nsXPComInit.cpp 2003-01-28 22:07:53 +00:00
dougt@netscape.com
013fcc43be Fixes 48888 - xpcom flat file backend. r=dp@netscape.com sr=waterson@netscape.com 2002-06-14 21:33:05 +00:00
seawood@netscape.com
b1412f047f Use the same name for the application profile directory in the registry as the profile manager does.
Bug #146150 r=arougthopher
2002-06-14 05:08:05 +00:00
dp@netscape.com
366a5d8fa7 bug 130381 Using arena for registry prepopulation r=dougt sr=alecf a=asa 2002-05-02 21:25:08 +00:00
dougt@netscape.com
c3e0a303eb 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
2002-01-29 21:22:13 +00:00
dougt@netscape.com
32ebf7f11f 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
2001-12-19 00:12:41 +00:00