1    COMPONENT_M(MEMORY, nsMemoryImpl::Create, Module::ALLOW_IN_GPU_PROCESS)
2    COMPONENT_M(DEBUG,  nsDebugImpl::Create, Module::ALLOW_IN_GPU_PROCESS)
3    COMPONENT(ERRORSERVICE, nsErrorService::Create)
4
5    COMPONENT_M(CATEGORYMANAGER, nsCategoryManager::Create, Module::ALLOW_IN_GPU_PROCESS)
6
7    COMPONENT(SCRIPTABLEINPUTSTREAM, nsScriptableInputStream::Create)
8    COMPONENT(BINARYINPUTSTREAM, nsBinaryInputStreamConstructor)
9    COMPONENT(BINARYOUTPUTSTREAM, nsBinaryOutputStreamConstructor)
10    COMPONENT(STORAGESTREAM, nsStorageStreamConstructor)
11    COMPONENT(VERSIONCOMPARATOR, nsVersionComparatorImplConstructor)
12    COMPONENT(SCRIPTABLEBASE64ENCODER, nsScriptableBase64EncoderConstructor)
13    COMPONENT(PIPE, nsPipeConstructor)
14
15    COMPONENT(PROPERTIES, nsPropertiesConstructor)
16
17    COMPONENT(PERSISTENTPROPERTIES, nsPersistentProperties::Create)
18
19    COMPONENT(SUPPORTSARRAY, nsSupportsArray::Create)
20    COMPONENT(ARRAY, nsArrayBase::XPCOMConstructor)
21    COMPONENT(CONSOLESERVICE, nsConsoleServiceConstructor)
22    COMPONENT(ATOMSERVICE, nsAtomServiceConstructor)
23    COMPONENT_M(OBSERVERSERVICE, nsObserverService::Create, Module::ALLOW_IN_GPU_PROCESS)
24
25    COMPONENT_M(TIMER, nsTimerConstructor, Module::ALLOW_IN_GPU_PROCESS)
26
27#define COMPONENT_SUPPORTS(TYPE, Type)                                         \
28  COMPONENT(SUPPORTS_##TYPE, nsSupports##Type##Constructor)
29
30    COMPONENT_SUPPORTS(ID, ID)
31    COMPONENT_SUPPORTS(STRING, String)
32    COMPONENT_SUPPORTS(CSTRING, CString)
33    COMPONENT_SUPPORTS(PRBOOL, PRBool)
34    COMPONENT_SUPPORTS(PRUINT8, PRUint8)
35    COMPONENT_SUPPORTS(PRUINT16, PRUint16)
36    COMPONENT_SUPPORTS(PRUINT32, PRUint32)
37    COMPONENT_SUPPORTS(PRUINT64, PRUint64)
38    COMPONENT_SUPPORTS(PRTIME, PRTime)
39    COMPONENT_SUPPORTS(CHAR, Char)
40    COMPONENT_SUPPORTS(PRINT16, PRInt16)
41    COMPONENT_SUPPORTS(PRINT32, PRInt32)
42    COMPONENT_SUPPORTS(PRINT64, PRInt64)
43    COMPONENT_SUPPORTS(FLOAT, Float)
44    COMPONENT_SUPPORTS(DOUBLE, Double)
45    COMPONENT_SUPPORTS(VOID, Void)
46    COMPONENT_SUPPORTS(INTERFACE_POINTER, InterfacePointer)
47
48#undef COMPONENT_SUPPORTS
49    COMPONENT(LOCAL_FILE, nsLocalFile::nsLocalFileConstructor)
50    COMPONENT(DIRECTORY_SERVICE, nsDirectoryService::Create)
51    COMPONENT(PROCESS, nsProcessConstructor)
52    COMPONENT(ENVIRONMENT, nsEnvironment::Create)
53
54    COMPONENT(THREADMANAGER, nsThreadManagerGetSingleton)
55    COMPONENT_M(THREADPOOL, nsThreadPoolConstructor, Module::ALLOW_IN_GPU_PROCESS)
56
57    COMPONENT(STRINGINPUTSTREAM, nsStringInputStreamConstructor)
58    COMPONENT(MULTIPLEXINPUTSTREAM, nsMultiplexInputStreamConstructor)
59
60    COMPONENT(VARIANT, nsVariantCCConstructor)
61    COMPONENT(INTERFACEINFOMANAGER_SERVICE, nsXPTIInterfaceInfoManagerGetSingleton)
62
63    COMPONENT(HASH_PROPERTY_BAG, nsHashPropertyBagCCConstructor)
64
65    COMPONENT(UUID_GENERATOR, nsUUIDGeneratorConstructor)
66
67#if defined(XP_WIN)
68    COMPONENT(WINDOWSREGKEY, nsWindowsRegKeyConstructor)
69#endif
70
71#if defined(MOZ_WIDGET_COCOA)
72    COMPONENT(MACUTILSIMPL, nsMacUtilsImplConstructor)
73#endif
74
75    COMPONENT(SYSTEMINFO, nsSystemInfoConstructor)
76    COMPONENT(MEMORY_REPORTER_MANAGER, nsMemoryReporterManagerConstructor)
77    COMPONENT(MEMORY_INFO_DUMPER, nsMemoryInfoDumperConstructor)
78    COMPONENT(IOUTIL, nsIOUtilConstructor)
79    COMPONENT(CYCLE_COLLECTOR_LOGGER, nsCycleCollectorLoggerConstructor)
80    COMPONENT(MESSAGE_LOOP, nsMessageLoopConstructor)
81    COMPONENT(STATUS_REPORTER_MANAGER, nsStatusReporterManagerConstructor)
82