netwerk/build/nsNetModule.cpp

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/netwerk/build/nsNetModule.cpp	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,1128 @@
     1.4 +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
     1.5 +/* vim: set sw=4 ts=8 et tw=80 : */
     1.6 +/* This Source Code Form is subject to the terms of the Mozilla Public
     1.7 + * License, v. 2.0. If a copy of the MPL was not distributed with this
     1.8 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     1.9 +
    1.10 +#include "necko-config.h"
    1.11 +
    1.12 +#define ALLOW_LATE_HTTPLOG_H_INCLUDE 1
    1.13 +#include "base/basictypes.h"
    1.14 +
    1.15 +#include "nsCOMPtr.h"
    1.16 +#include "nsIClassInfoImpl.h"
    1.17 +#include "mozilla/ModuleUtils.h"
    1.18 +#include "nsIComponentManager.h"
    1.19 +#include "nsIServiceManager.h"
    1.20 +#include "nsICategoryManager.h"
    1.21 +#include "nsSocketProviderService.h"
    1.22 +#include "nscore.h"
    1.23 +#include "nsSimpleURI.h"
    1.24 +#include "nsSimpleNestedURI.h"
    1.25 +#include "nsLoadGroup.h"
    1.26 +#include "nsStreamLoader.h"
    1.27 +#include "nsUnicharStreamLoader.h"
    1.28 +#include "nsFileStreams.h"
    1.29 +#include "nsBufferedStreams.h"
    1.30 +#include "nsMIMEInputStream.h"
    1.31 +#include "nsSOCKSSocketProvider.h"
    1.32 +#include "nsCacheService.h"
    1.33 +#include "nsDiskCacheDeviceSQL.h"
    1.34 +#include "nsApplicationCache.h"
    1.35 +#include "nsApplicationCacheService.h"
    1.36 +#include "nsMimeTypes.h"
    1.37 +#include "nsNetStrings.h"
    1.38 +#include "nsDNSPrefetch.h"
    1.39 +#include "nsAboutProtocolHandler.h"
    1.40 +#include "nsXULAppAPI.h"
    1.41 +#include "nsCategoryCache.h"
    1.42 +#include "nsIContentSniffer.h"
    1.43 +#include "Seer.h"
    1.44 +#include "nsNetUtil.h"
    1.45 +#include "nsIThreadPool.h"
    1.46 +#include "mozilla/net/NeckoChild.h"
    1.47 +
    1.48 +#include "nsNetCID.h"
    1.49 +
    1.50 +#ifndef XP_MACOSX
    1.51 +#define BUILD_BINHEX_DECODER 1
    1.52 +#endif
    1.53 +
    1.54 +typedef nsCategoryCache<nsIContentSniffer> ContentSnifferCache;
    1.55 +NS_HIDDEN_(ContentSnifferCache*) gNetSniffers = nullptr;
    1.56 +NS_HIDDEN_(ContentSnifferCache*) gDataSniffers = nullptr;
    1.57 +
    1.58 +///////////////////////////////////////////////////////////////////////////////
    1.59 +
    1.60 +#include "nsIOService.h"
    1.61 +NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIOService, nsIOService::GetInstance)
    1.62 +
    1.63 +#include "nsDNSService2.h"
    1.64 +NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIDNSService,
    1.65 +  nsDNSService::GetXPCOMSingleton)
    1.66 +
    1.67 +#include "nsProtocolProxyService.h"
    1.68 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsProtocolProxyService, Init)
    1.69 +
    1.70 +#include "nsStreamTransportService.h"
    1.71 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsStreamTransportService, Init)
    1.72 +
    1.73 +#include "nsSocketTransportService2.h"
    1.74 +#undef LOG
    1.75 +#undef LOG_ENABLED
    1.76 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsSocketTransportService, Init)
    1.77 +
    1.78 +#include "nsServerSocket.h"
    1.79 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsServerSocket)
    1.80 +
    1.81 +#include "nsUDPSocket.h"
    1.82 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsUDPSocket)
    1.83 +
    1.84 +#include "nsUDPSocketProvider.h"
    1.85 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsUDPSocketProvider)
    1.86 +
    1.87 +#include "nsAsyncStreamCopier.h"
    1.88 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsAsyncStreamCopier)
    1.89 +
    1.90 +#include "nsInputStreamPump.h"
    1.91 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsInputStreamPump)
    1.92 +
    1.93 +#include "nsInputStreamChannel.h"
    1.94 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsInputStreamChannel, Init)
    1.95 +
    1.96 +#include "nsDownloader.h"
    1.97 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsDownloader)
    1.98 +
    1.99 +#include "BackgroundFileSaver.h"
   1.100 +namespace mozilla {
   1.101 +namespace net {
   1.102 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(BackgroundFileSaverOutputStream, Init)
   1.103 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(BackgroundFileSaverStreamListener, Init)
   1.104 +} // namespace net
   1.105 +} // namespace mozilla
   1.106 +
   1.107 +#include "nsSyncStreamListener.h"
   1.108 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsSyncStreamListener, Init)
   1.109 +
   1.110 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsAtomicFileOutputStream)
   1.111 +
   1.112 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsSafeFileOutputStream)
   1.113 +
   1.114 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsFileStream)
   1.115 +
   1.116 +NS_GENERIC_AGGREGATED_CONSTRUCTOR_INIT(nsLoadGroup, Init)
   1.117 +
   1.118 +#include "ArrayBufferInputStream.h"
   1.119 +NS_GENERIC_FACTORY_CONSTRUCTOR(ArrayBufferInputStream)
   1.120 +
   1.121 +#include "nsEffectiveTLDService.h"
   1.122 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsEffectiveTLDService, Init)
   1.123 +
   1.124 +#include "nsSerializationHelper.h"
   1.125 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsSerializationHelper)
   1.126 +
   1.127 +#include "RedirectChannelRegistrar.h"
   1.128 +typedef mozilla::net::RedirectChannelRegistrar RedirectChannelRegistrar;
   1.129 +NS_GENERIC_FACTORY_CONSTRUCTOR(RedirectChannelRegistrar)
   1.130 +
   1.131 +#include "CacheStorageService.h"
   1.132 +typedef mozilla::net::CacheStorageService CacheStorageService;
   1.133 +NS_GENERIC_FACTORY_CONSTRUCTOR(CacheStorageService)
   1.134 +
   1.135 +///////////////////////////////////////////////////////////////////////////////
   1.136 +
   1.137 +extern nsresult
   1.138 +net_NewIncrementalDownload(nsISupports *, const nsIID &, void **);
   1.139 +
   1.140 +#define NS_INCREMENTALDOWNLOAD_CID \
   1.141 +{ /* a62af1ba-79b3-4896-8aaf-b148bfce4280 */         \
   1.142 +    0xa62af1ba,                                      \
   1.143 +    0x79b3,                                          \
   1.144 +    0x4896,                                          \
   1.145 +    {0x8a, 0xaf, 0xb1, 0x48, 0xbf, 0xce, 0x42, 0x80} \
   1.146 +}
   1.147 +
   1.148 +///////////////////////////////////////////////////////////////////////////////
   1.149 +
   1.150 +#include "nsMIMEHeaderParamImpl.h"
   1.151 +
   1.152 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsMIMEHeaderParamImpl)
   1.153 +///////////////////////////////////////////////////////////////////////////////
   1.154 +
   1.155 +#include "nsRequestObserverProxy.h"
   1.156 +#include "nsSimpleStreamListener.h"
   1.157 +#include "nsDirIndexParser.h"
   1.158 +#include "nsDirIndex.h"
   1.159 +
   1.160 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsRequestObserverProxy)
   1.161 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsSimpleStreamListener)
   1.162 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsDirIndexParser, Init)
   1.163 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsDirIndex)
   1.164 +
   1.165 +///////////////////////////////////////////////////////////////////////////////
   1.166 +
   1.167 +#include "nsStreamListenerTee.h"
   1.168 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsStreamListenerTee)
   1.169 +
   1.170 +///////////////////////////////////////////////////////////////////////////////
   1.171 +
   1.172 +#ifdef NECKO_COOKIES
   1.173 +#include "nsCookieService.h"
   1.174 +NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsICookieService,
   1.175 +  nsCookieService::GetXPCOMSingleton)
   1.176 +#endif
   1.177 +
   1.178 +///////////////////////////////////////////////////////////////////////////////
   1.179 +#ifdef NECKO_WIFI
   1.180 +
   1.181 +#include "nsWifiMonitor.h"
   1.182 +#undef LOG
   1.183 +#undef LOG_ENABLED
   1.184 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsWifiMonitor)
   1.185 +
   1.186 +#endif
   1.187 +
   1.188 +///////////////////////////////////////////////////////////////////////////////
   1.189 +// protocols
   1.190 +///////////////////////////////////////////////////////////////////////////////
   1.191 +
   1.192 +// about:blank is mandatory
   1.193 +#include "nsAboutProtocolHandler.h"
   1.194 +#include "nsAboutBlank.h"
   1.195 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsAboutProtocolHandler)
   1.196 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsSafeAboutProtocolHandler)
   1.197 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsNestedAboutURI)
   1.198 +
   1.199 +#ifdef NECKO_PROTOCOL_about
   1.200 +// about
   1.201 +#ifdef NS_BUILD_REFCNT_LOGGING
   1.202 +#include "nsAboutBloat.h"
   1.203 +#endif
   1.204 +#include "nsAboutCache.h"
   1.205 +#include "nsAboutCacheEntry.h"
   1.206 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsAboutCacheEntry)
   1.207 +#endif
   1.208 +
   1.209 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsApplicationCacheService)
   1.210 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsApplicationCacheNamespace)
   1.211 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsApplicationCache)
   1.212 +
   1.213 +#ifdef NECKO_PROTOCOL_file
   1.214 +// file
   1.215 +#include "nsFileProtocolHandler.h"
   1.216 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsFileProtocolHandler, Init)
   1.217 +#endif
   1.218 +
   1.219 +#ifdef NECKO_PROTOCOL_ftp
   1.220 +// ftp
   1.221 +#include "nsFtpProtocolHandler.h"
   1.222 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsFtpProtocolHandler, Init)
   1.223 +#endif
   1.224 +
   1.225 +#ifdef NECKO_PROTOCOL_http
   1.226 +// http/https
   1.227 +#include "nsHttpHandler.h"
   1.228 +#undef LOG
   1.229 +#undef LOG_ENABLED
   1.230 +#include "nsHttpAuthManager.h"
   1.231 +#include "nsHttpChannelAuthProvider.h"
   1.232 +#include "nsHttpBasicAuth.h"
   1.233 +#include "nsHttpDigestAuth.h"
   1.234 +#include "nsHttpNTLMAuth.h"
   1.235 +#include "nsHttpActivityDistributor.h"
   1.236 +#undef LOG
   1.237 +#undef LOG_ENABLED
   1.238 +namespace mozilla {
   1.239 +namespace net {
   1.240 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsHttpNTLMAuth)
   1.241 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsHttpHandler, Init)
   1.242 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsHttpsHandler, Init)
   1.243 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsHttpAuthManager, Init)
   1.244 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsHttpChannelAuthProvider)
   1.245 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsHttpActivityDistributor)
   1.246 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsHttpBasicAuth)
   1.247 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsHttpDigestAuth)
   1.248 +}
   1.249 +}
   1.250 +#endif // !NECKO_PROTOCOL_http
   1.251 +
   1.252 +#include "mozilla/net/Dashboard.h"
   1.253 +namespace mozilla {
   1.254 +namespace net {
   1.255 +  NS_GENERIC_FACTORY_CONSTRUCTOR(Dashboard)
   1.256 +}
   1.257 +}
   1.258 +#include "AppProtocolHandler.h"
   1.259 +
   1.260 +#ifdef NECKO_PROTOCOL_res
   1.261 +// resource
   1.262 +#include "nsResProtocolHandler.h"
   1.263 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsResProtocolHandler, Init)
   1.264 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsResURL)
   1.265 +#endif
   1.266 +
   1.267 +#ifdef NECKO_PROTOCOL_device
   1.268 +#include "nsDeviceProtocolHandler.h"
   1.269 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsDeviceProtocolHandler)
   1.270 +#endif
   1.271 +
   1.272 +#ifdef NECKO_PROTOCOL_viewsource
   1.273 +#include "nsViewSourceHandler.h"
   1.274 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsViewSourceHandler)
   1.275 +#endif
   1.276 +
   1.277 +#ifdef NECKO_PROTOCOL_data
   1.278 +#include "nsDataHandler.h"
   1.279 +#endif
   1.280 +
   1.281 +#ifdef NECKO_PROTOCOL_wyciwyg
   1.282 +#include "nsWyciwygProtocolHandler.h"
   1.283 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsWyciwygProtocolHandler)
   1.284 +#endif
   1.285 +
   1.286 +#ifdef NECKO_PROTOCOL_websocket
   1.287 +#include "WebSocketChannel.h"
   1.288 +#include "WebSocketChannelChild.h"
   1.289 +namespace mozilla {
   1.290 +namespace net {
   1.291 +static BaseWebSocketChannel*
   1.292 +WebSocketChannelConstructor(bool aSecure)
   1.293 +{
   1.294 +  if (IsNeckoChild()) {
   1.295 +    return new WebSocketChannelChild(aSecure);
   1.296 +  }
   1.297 +
   1.298 +  if (aSecure) {
   1.299 +    return new WebSocketSSLChannel;
   1.300 +  } else {
   1.301 +    return new WebSocketChannel;
   1.302 +  }
   1.303 +}
   1.304 +
   1.305 +#define WEB_SOCKET_HANDLER_CONSTRUCTOR(type, secure)  \
   1.306 +static nsresult                                       \
   1.307 +type##Constructor(nsISupports *aOuter, REFNSIID aIID, \
   1.308 +                  void **aResult)                     \
   1.309 +{                                                     \
   1.310 +  nsresult rv;                                        \
   1.311 +                                                      \
   1.312 +  BaseWebSocketChannel * inst;                        \
   1.313 +                                                      \
   1.314 +  *aResult = nullptr;                                 \
   1.315 +  if (nullptr != aOuter) {                            \
   1.316 +    rv = NS_ERROR_NO_AGGREGATION;                     \
   1.317 +    return rv;                                        \
   1.318 +  }                                                   \
   1.319 +  inst = WebSocketChannelConstructor(secure);         \
   1.320 +  NS_ADDREF(inst);                                    \
   1.321 +  rv = inst->QueryInterface(aIID, aResult);           \
   1.322 +  NS_RELEASE(inst);                                   \
   1.323 +  return rv;                                          \
   1.324 +}
   1.325 +
   1.326 +WEB_SOCKET_HANDLER_CONSTRUCTOR(WebSocketChannel, false)
   1.327 +WEB_SOCKET_HANDLER_CONSTRUCTOR(WebSocketSSLChannel, true)
   1.328 +#undef WEB_SOCKET_HANDLER_CONSTRUCTOR
   1.329 +} // namespace mozilla::net
   1.330 +} // namespace mozilla
   1.331 +#endif
   1.332 +
   1.333 +#ifdef NECKO_PROTOCOL_rtsp
   1.334 +#include "RtspHandler.h"
   1.335 +namespace mozilla {
   1.336 +namespace net {
   1.337 +NS_GENERIC_FACTORY_CONSTRUCTOR(RtspHandler)
   1.338 +} // namespace mozilla::net
   1.339 +} // namespace mozilla
   1.340 +#endif
   1.341 +
   1.342 +///////////////////////////////////////////////////////////////////////////////
   1.343 +
   1.344 +#include "nsURIChecker.h"
   1.345 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsURIChecker)
   1.346 +
   1.347 +///////////////////////////////////////////////////////////////////////////////
   1.348 +
   1.349 +#include "nsURLParsers.h"
   1.350 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsNoAuthURLParser)
   1.351 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsAuthURLParser)
   1.352 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsStdURLParser)
   1.353 +
   1.354 +#include "nsStandardURL.h"
   1.355 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsStandardURL)
   1.356 +
   1.357 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsSimpleURI)
   1.358 +
   1.359 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsSimpleNestedURI)
   1.360 +
   1.361 +///////////////////////////////////////////////////////////////////////////////
   1.362 +
   1.363 +#include "nsIDNService.h"
   1.364 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsIDNService, Init)
   1.365 +
   1.366 +///////////////////////////////////////////////////////////////////////////////
   1.367 +#if defined(XP_WIN)
   1.368 +#include "nsNotifyAddrListener.h"
   1.369 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsNotifyAddrListener, Init)
   1.370 +#elif defined(MOZ_WIDGET_COCOA)
   1.371 +#include "nsNetworkLinkService.h"
   1.372 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsNetworkLinkService, Init)
   1.373 +#elif defined(MOZ_ENABLE_QTNETWORK)
   1.374 +#include "nsQtNetworkLinkService.h"
   1.375 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsQtNetworkLinkService, Init)
   1.376 +#elif defined(MOZ_WIDGET_ANDROID)
   1.377 +#include "nsAndroidNetworkLinkService.h"
   1.378 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsAndroidNetworkLinkService)
   1.379 +#endif
   1.380 +
   1.381 +///////////////////////////////////////////////////////////////////////////////
   1.382 +
   1.383 +#ifdef NECKO_PROTOCOL_ftp
   1.384 +#include "nsFTPDirListingConv.h"
   1.385 +nsresult NS_NewFTPDirListingConv(nsFTPDirListingConv** result);
   1.386 +#endif
   1.387 +
   1.388 +#include "nsStreamConverterService.h"
   1.389 +#include "nsMultiMixedConv.h"
   1.390 +#include "nsHTTPCompressConv.h"
   1.391 +#include "mozTXTToHTMLConv.h"
   1.392 +#include "nsUnknownDecoder.h"
   1.393 +#include "nsTXTToHTMLConv.h"
   1.394 +#include "nsIndexedToHTML.h"
   1.395 +#ifdef BUILD_BINHEX_DECODER
   1.396 +#include "nsBinHexDecoder.h"
   1.397 +#endif
   1.398 +
   1.399 +nsresult NS_NewMultiMixedConv (nsMultiMixedConv** result);
   1.400 +nsresult MOZ_NewTXTToHTMLConv (mozTXTToHTMLConv** result);
   1.401 +nsresult NS_NewHTTPCompressConv  (nsHTTPCompressConv ** result);
   1.402 +nsresult NS_NewNSTXTToHTMLConv(nsTXTToHTMLConv** result);
   1.403 +nsresult NS_NewStreamConv(nsStreamConverterService **aStreamConv);
   1.404 +
   1.405 +#define FTP_TO_INDEX                 "?from=text/ftp-dir&to=application/http-index-format"
   1.406 +#define INDEX_TO_HTML                "?from=application/http-index-format&to=text/html"
   1.407 +#define MULTI_MIXED_X                "?from=multipart/x-mixed-replace&to=*/*"
   1.408 +#define MULTI_MIXED                  "?from=multipart/mixed&to=*/*"
   1.409 +#define MULTI_BYTERANGES             "?from=multipart/byteranges&to=*/*"
   1.410 +#define UNKNOWN_CONTENT              "?from=" UNKNOWN_CONTENT_TYPE "&to=*/*"
   1.411 +#define GZIP_TO_UNCOMPRESSED         "?from=gzip&to=uncompressed"
   1.412 +#define XGZIP_TO_UNCOMPRESSED        "?from=x-gzip&to=uncompressed"
   1.413 +#define COMPRESS_TO_UNCOMPRESSED     "?from=compress&to=uncompressed"
   1.414 +#define XCOMPRESS_TO_UNCOMPRESSED    "?from=x-compress&to=uncompressed"
   1.415 +#define DEFLATE_TO_UNCOMPRESSED      "?from=deflate&to=uncompressed"
   1.416 +#define PLAIN_TO_HTML                "?from=text/plain&to=text/html"
   1.417 +
   1.418 +#ifdef BUILD_BINHEX_DECODER
   1.419 +#define BINHEX_TO_WILD               "?from=application/mac-binhex40&to=*/*"
   1.420 +#endif
   1.421 +
   1.422 +static const mozilla::Module::CategoryEntry kNeckoCategories[] = {
   1.423 +    { NS_ISTREAMCONVERTER_KEY, FTP_TO_INDEX, "" },
   1.424 +    { NS_ISTREAMCONVERTER_KEY, INDEX_TO_HTML, "" },
   1.425 +    { NS_ISTREAMCONVERTER_KEY, MULTI_MIXED_X, "" },
   1.426 +    { NS_ISTREAMCONVERTER_KEY, MULTI_MIXED, "" },
   1.427 +    { NS_ISTREAMCONVERTER_KEY, MULTI_BYTERANGES, "" },
   1.428 +    { NS_ISTREAMCONVERTER_KEY, UNKNOWN_CONTENT, "" },
   1.429 +    { NS_ISTREAMCONVERTER_KEY, GZIP_TO_UNCOMPRESSED, "" },
   1.430 +    { NS_ISTREAMCONVERTER_KEY, XGZIP_TO_UNCOMPRESSED, "" },
   1.431 +    { NS_ISTREAMCONVERTER_KEY, COMPRESS_TO_UNCOMPRESSED, "" },
   1.432 +    { NS_ISTREAMCONVERTER_KEY, XCOMPRESS_TO_UNCOMPRESSED, "" },
   1.433 +    { NS_ISTREAMCONVERTER_KEY, DEFLATE_TO_UNCOMPRESSED, "" },
   1.434 +#ifdef BUILD_BINHEX_DECODER
   1.435 +    { NS_ISTREAMCONVERTER_KEY, BINHEX_TO_WILD, "" },
   1.436 +#endif
   1.437 +    { NS_ISTREAMCONVERTER_KEY, PLAIN_TO_HTML, "" },
   1.438 +    NS_BINARYDETECTOR_CATEGORYENTRY,
   1.439 +    { nullptr }
   1.440 +};
   1.441 +
   1.442 +#ifdef BUILD_BINHEX_DECODER
   1.443 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsBinHexDecoder)
   1.444 +#endif
   1.445 +
   1.446 +static nsresult
   1.447 +CreateNewStreamConvServiceFactory(nsISupports* aOuter, REFNSIID aIID, void **aResult) 
   1.448 +{
   1.449 +    if (!aResult) {                                                  
   1.450 +        return NS_ERROR_INVALID_POINTER;                             
   1.451 +    }
   1.452 +    if (aOuter) {                                                    
   1.453 +        *aResult = nullptr;                                           
   1.454 +        return NS_ERROR_NO_AGGREGATION;                              
   1.455 +    }   
   1.456 +    nsStreamConverterService* inst = nullptr;
   1.457 +    nsresult rv = NS_NewStreamConv(&inst);
   1.458 +    if (NS_FAILED(rv)) {                                             
   1.459 +        *aResult = nullptr;                                           
   1.460 +        return rv;                                                   
   1.461 +    } 
   1.462 +    rv = inst->QueryInterface(aIID, aResult);
   1.463 +    if (NS_FAILED(rv)) {                                             
   1.464 +        *aResult = nullptr;                                           
   1.465 +    }                                                                
   1.466 +    NS_RELEASE(inst);             /* get rid of extra refcnt */      
   1.467 +    return rv;              
   1.468 +}
   1.469 +
   1.470 +#ifdef NECKO_PROTOCOL_ftp
   1.471 +static nsresult
   1.472 +CreateNewFTPDirListingConv(nsISupports* aOuter, REFNSIID aIID, void **aResult) 
   1.473 +{
   1.474 +    if (!aResult) {                                                  
   1.475 +        return NS_ERROR_INVALID_POINTER;                             
   1.476 +    }
   1.477 +    if (aOuter) {                                                    
   1.478 +        *aResult = nullptr;                                           
   1.479 +        return NS_ERROR_NO_AGGREGATION;                              
   1.480 +    }   
   1.481 +    nsFTPDirListingConv* inst = nullptr;
   1.482 +    nsresult rv = NS_NewFTPDirListingConv(&inst);
   1.483 +    if (NS_FAILED(rv)) {                                             
   1.484 +        *aResult = nullptr;                                           
   1.485 +        return rv;                                                   
   1.486 +    } 
   1.487 +    rv = inst->QueryInterface(aIID, aResult);
   1.488 +    if (NS_FAILED(rv)) {                                             
   1.489 +        *aResult = nullptr;                                           
   1.490 +    }                                                                
   1.491 +    NS_RELEASE(inst);             /* get rid of extra refcnt */      
   1.492 +    return rv;              
   1.493 +}
   1.494 +#endif
   1.495 +
   1.496 +static nsresult
   1.497 +CreateNewMultiMixedConvFactory(nsISupports* aOuter, REFNSIID aIID, void **aResult) 
   1.498 +{
   1.499 +    if (!aResult) {                                                  
   1.500 +        return NS_ERROR_INVALID_POINTER;                             
   1.501 +    }
   1.502 +    if (aOuter) {                                                    
   1.503 +        *aResult = nullptr;                                           
   1.504 +        return NS_ERROR_NO_AGGREGATION;                              
   1.505 +    }   
   1.506 +    nsMultiMixedConv* inst = nullptr;
   1.507 +    nsresult rv = NS_NewMultiMixedConv(&inst);
   1.508 +    if (NS_FAILED(rv)) {                                             
   1.509 +        *aResult = nullptr;                                           
   1.510 +        return rv;                                                   
   1.511 +    } 
   1.512 +    rv = inst->QueryInterface(aIID, aResult);
   1.513 +    if (NS_FAILED(rv)) {                                             
   1.514 +        *aResult = nullptr;                                           
   1.515 +    }                                                                
   1.516 +    NS_RELEASE(inst);             /* get rid of extra refcnt */      
   1.517 +    return rv;              
   1.518 +}
   1.519 +
   1.520 +static nsresult
   1.521 +CreateNewTXTToHTMLConvFactory(nsISupports* aOuter, REFNSIID aIID, void **aResult) 
   1.522 +{
   1.523 +    if (!aResult) {                                                  
   1.524 +        return NS_ERROR_INVALID_POINTER;                             
   1.525 +    }
   1.526 +    if (aOuter) {                                                    
   1.527 +        *aResult = nullptr;                                           
   1.528 +        return NS_ERROR_NO_AGGREGATION;                              
   1.529 +    }   
   1.530 +    mozTXTToHTMLConv* inst = nullptr;
   1.531 +    nsresult rv = MOZ_NewTXTToHTMLConv(&inst);
   1.532 +    if (NS_FAILED(rv)) {                                             
   1.533 +        *aResult = nullptr;                                           
   1.534 +        return rv;                                                   
   1.535 +    } 
   1.536 +    rv = inst->QueryInterface(aIID, aResult);
   1.537 +    if (NS_FAILED(rv)) {                                             
   1.538 +        *aResult = nullptr;                                           
   1.539 +    }                                                                
   1.540 +    NS_RELEASE(inst);             /* get rid of extra refcnt */      
   1.541 +    return rv;              
   1.542 +}
   1.543 +
   1.544 +static nsresult
   1.545 +CreateNewHTTPCompressConvFactory (nsISupports* aOuter, REFNSIID aIID, void **aResult) 
   1.546 +{
   1.547 +    if (!aResult) {                                                  
   1.548 +        return NS_ERROR_INVALID_POINTER;                             
   1.549 +    }
   1.550 +    if (aOuter) {                                                    
   1.551 +        *aResult = nullptr;                                           
   1.552 +        return NS_ERROR_NO_AGGREGATION;                              
   1.553 +    }   
   1.554 +    nsHTTPCompressConv* inst = nullptr;
   1.555 +    nsresult rv = NS_NewHTTPCompressConv (&inst);
   1.556 +    if (NS_FAILED(rv)) {                                             
   1.557 +        *aResult = nullptr;                                           
   1.558 +        return rv;                                                   
   1.559 +    } 
   1.560 +    rv = inst->QueryInterface(aIID, aResult);
   1.561 +    if (NS_FAILED(rv)) {                                             
   1.562 +        *aResult = nullptr;                                           
   1.563 +    }                                                                
   1.564 +    NS_RELEASE(inst);             /* get rid of extra refcnt */      
   1.565 +    return rv;              
   1.566 +}
   1.567 +
   1.568 +static nsresult
   1.569 +CreateNewUnknownDecoderFactory(nsISupports *aOuter, REFNSIID aIID, void **aResult)
   1.570 +{
   1.571 +  nsresult rv;
   1.572 +
   1.573 +  if (!aResult) {
   1.574 +    return NS_ERROR_NULL_POINTER;
   1.575 +  }
   1.576 +  *aResult = nullptr;
   1.577 +
   1.578 +  if (aOuter) {
   1.579 +    return NS_ERROR_NO_AGGREGATION;
   1.580 +  }
   1.581 +
   1.582 +  nsUnknownDecoder *inst;
   1.583 +  
   1.584 +  inst = new nsUnknownDecoder();
   1.585 +  if (!inst) {
   1.586 +    return NS_ERROR_OUT_OF_MEMORY;
   1.587 +  }
   1.588 +  NS_ADDREF(inst);
   1.589 +  rv = inst->QueryInterface(aIID, aResult);
   1.590 +  NS_RELEASE(inst);
   1.591 +
   1.592 +  return rv;
   1.593 +}
   1.594 +
   1.595 +static nsresult
   1.596 +CreateNewBinaryDetectorFactory(nsISupports *aOuter, REFNSIID aIID, void **aResult)
   1.597 +{
   1.598 +  nsresult rv;
   1.599 +
   1.600 +  if (!aResult) {
   1.601 +    return NS_ERROR_NULL_POINTER;
   1.602 +  }
   1.603 +  *aResult = nullptr;
   1.604 +
   1.605 +  if (aOuter) {
   1.606 +    return NS_ERROR_NO_AGGREGATION;
   1.607 +  }
   1.608 +
   1.609 +  nsBinaryDetector* inst = new nsBinaryDetector();
   1.610 +  if (!inst) {
   1.611 +    return NS_ERROR_OUT_OF_MEMORY;
   1.612 +  }
   1.613 +  NS_ADDREF(inst);
   1.614 +  rv = inst->QueryInterface(aIID, aResult);
   1.615 +  NS_RELEASE(inst);
   1.616 +
   1.617 +  return rv;
   1.618 +}
   1.619 +
   1.620 +static nsresult
   1.621 +CreateNewNSTXTToHTMLConvFactory(nsISupports *aOuter, REFNSIID aIID, void **aResult)
   1.622 +{
   1.623 +  nsresult rv;
   1.624 +
   1.625 +  if (!aResult) {
   1.626 +    return NS_ERROR_NULL_POINTER;
   1.627 +  }
   1.628 +  *aResult = nullptr;
   1.629 +
   1.630 +  if (aOuter) {
   1.631 +    return NS_ERROR_NO_AGGREGATION;
   1.632 +  }
   1.633 +
   1.634 +  nsTXTToHTMLConv *inst;
   1.635 +  
   1.636 +  inst = new nsTXTToHTMLConv();
   1.637 +  if (!inst) return NS_ERROR_OUT_OF_MEMORY;
   1.638 +
   1.639 +  NS_ADDREF(inst);
   1.640 +  rv = inst->Init();
   1.641 +  if (NS_FAILED(rv)) {
   1.642 +    delete inst;
   1.643 +    return rv;
   1.644 +  }
   1.645 +  rv = inst->QueryInterface(aIID, aResult);
   1.646 +  NS_RELEASE(inst);
   1.647 +
   1.648 +  return rv;
   1.649 +}
   1.650 +
   1.651 +///////////////////////////////////////////////////////////////////////////////
   1.652 +// Module implementation for the net library
   1.653 +
   1.654 +// Net module startup hook
   1.655 +static nsresult nsNetStartup()
   1.656 +{
   1.657 +    gNetStrings = new nsNetStrings();
   1.658 +    return gNetStrings ? NS_OK : NS_ERROR_OUT_OF_MEMORY;
   1.659 +}
   1.660 +
   1.661 +
   1.662 +// Net module shutdown hook
   1.663 +static void nsNetShutdown()
   1.664 +{
   1.665 +    // Release the url parser that the stdurl is holding.
   1.666 +    nsStandardURL::ShutdownGlobalObjects();
   1.667 +
   1.668 +    // Release global state used by the URL helper module.
   1.669 +    net_ShutdownURLHelper();
   1.670 +#ifdef XP_MACOSX
   1.671 +    net_ShutdownURLHelperOSX();
   1.672 +#endif
   1.673 +    
   1.674 +    // Release necko strings
   1.675 +    delete gNetStrings;
   1.676 +    gNetStrings = nullptr;
   1.677 +    
   1.678 +    // Release DNS service reference.
   1.679 +    nsDNSPrefetch::Shutdown();
   1.680 +
   1.681 +#ifdef NECKO_PROTOCOL_websocket
   1.682 +    // Release the Websocket Admission Manager
   1.683 +    mozilla::net::WebSocketChannel::Shutdown();
   1.684 +#endif // NECKO_PROTOCOL_websocket
   1.685 +
   1.686 +    delete gNetSniffers;
   1.687 +    gNetSniffers = nullptr;
   1.688 +    delete gDataSniffers;
   1.689 +    gDataSniffers = nullptr;
   1.690 +}
   1.691 +
   1.692 +NS_DEFINE_NAMED_CID(NS_IOSERVICE_CID);
   1.693 +NS_DEFINE_NAMED_CID(NS_STREAMTRANSPORTSERVICE_CID);
   1.694 +NS_DEFINE_NAMED_CID(NS_SOCKETTRANSPORTSERVICE_CID);
   1.695 +NS_DEFINE_NAMED_CID(NS_SERVERSOCKET_CID);
   1.696 +NS_DEFINE_NAMED_CID(NS_UDPSOCKET_CID);
   1.697 +NS_DEFINE_NAMED_CID(NS_SOCKETPROVIDERSERVICE_CID);
   1.698 +NS_DEFINE_NAMED_CID(NS_DNSSERVICE_CID);
   1.699 +NS_DEFINE_NAMED_CID(NS_IDNSERVICE_CID);
   1.700 +NS_DEFINE_NAMED_CID(NS_EFFECTIVETLDSERVICE_CID);
   1.701 +NS_DEFINE_NAMED_CID(NS_SIMPLEURI_CID);
   1.702 +NS_DEFINE_NAMED_CID(NS_SIMPLENESTEDURI_CID);
   1.703 +NS_DEFINE_NAMED_CID(NS_ASYNCSTREAMCOPIER_CID);
   1.704 +NS_DEFINE_NAMED_CID(NS_INPUTSTREAMPUMP_CID);
   1.705 +NS_DEFINE_NAMED_CID(NS_INPUTSTREAMCHANNEL_CID);
   1.706 +NS_DEFINE_NAMED_CID(NS_STREAMLOADER_CID);
   1.707 +NS_DEFINE_NAMED_CID(NS_UNICHARSTREAMLOADER_CID);
   1.708 +NS_DEFINE_NAMED_CID(NS_DOWNLOADER_CID);
   1.709 +NS_DEFINE_NAMED_CID(NS_BACKGROUNDFILESAVEROUTPUTSTREAM_CID);
   1.710 +NS_DEFINE_NAMED_CID(NS_BACKGROUNDFILESAVERSTREAMLISTENER_CID);
   1.711 +NS_DEFINE_NAMED_CID(NS_SYNCSTREAMLISTENER_CID);
   1.712 +NS_DEFINE_NAMED_CID(NS_REQUESTOBSERVERPROXY_CID);
   1.713 +NS_DEFINE_NAMED_CID(NS_SIMPLESTREAMLISTENER_CID);
   1.714 +NS_DEFINE_NAMED_CID(NS_STREAMLISTENERTEE_CID);
   1.715 +NS_DEFINE_NAMED_CID(NS_LOADGROUP_CID);
   1.716 +NS_DEFINE_NAMED_CID(NS_LOCALFILEINPUTSTREAM_CID);
   1.717 +NS_DEFINE_NAMED_CID(NS_LOCALFILEOUTPUTSTREAM_CID);
   1.718 +NS_DEFINE_NAMED_CID(NS_PARTIALLOCALFILEINPUTSTREAM_CID);
   1.719 +NS_DEFINE_NAMED_CID(NS_ATOMICLOCALFILEOUTPUTSTREAM_CID);
   1.720 +NS_DEFINE_NAMED_CID(NS_SAFELOCALFILEOUTPUTSTREAM_CID);
   1.721 +NS_DEFINE_NAMED_CID(NS_LOCALFILESTREAM_CID);
   1.722 +NS_DEFINE_NAMED_CID(NS_URICHECKER_CID);
   1.723 +NS_DEFINE_NAMED_CID(NS_INCREMENTALDOWNLOAD_CID);
   1.724 +NS_DEFINE_NAMED_CID(NS_STDURLPARSER_CID);
   1.725 +NS_DEFINE_NAMED_CID(NS_NOAUTHURLPARSER_CID);
   1.726 +NS_DEFINE_NAMED_CID(NS_AUTHURLPARSER_CID);
   1.727 +NS_DEFINE_NAMED_CID(NS_STANDARDURL_CID);
   1.728 +NS_DEFINE_NAMED_CID(NS_ARRAYBUFFERINPUTSTREAM_CID);
   1.729 +NS_DEFINE_NAMED_CID(NS_BUFFEREDINPUTSTREAM_CID);
   1.730 +NS_DEFINE_NAMED_CID(NS_BUFFEREDOUTPUTSTREAM_CID);
   1.731 +NS_DEFINE_NAMED_CID(NS_MIMEINPUTSTREAM_CID);
   1.732 +NS_DEFINE_NAMED_CID(NS_PROTOCOLPROXYSERVICE_CID);
   1.733 +NS_DEFINE_NAMED_CID(NS_STREAMCONVERTERSERVICE_CID);
   1.734 +NS_DEFINE_NAMED_CID(NS_DASHBOARD_CID);
   1.735 +#ifdef NECKO_PROTOCOL_ftp
   1.736 +NS_DEFINE_NAMED_CID(NS_FTPDIRLISTINGCONVERTER_CID);
   1.737 +#endif
   1.738 +NS_DEFINE_NAMED_CID(NS_NSINDEXEDTOHTMLCONVERTER_CID);
   1.739 +NS_DEFINE_NAMED_CID(NS_DIRINDEXPARSER_CID);
   1.740 +NS_DEFINE_NAMED_CID(NS_MULTIMIXEDCONVERTER_CID);
   1.741 +NS_DEFINE_NAMED_CID(NS_UNKNOWNDECODER_CID);
   1.742 +NS_DEFINE_NAMED_CID(NS_BINARYDETECTOR_CID);
   1.743 +NS_DEFINE_NAMED_CID(NS_HTTPCOMPRESSCONVERTER_CID);
   1.744 +NS_DEFINE_NAMED_CID(NS_NSTXTTOHTMLCONVERTER_CID);
   1.745 +#ifdef BUILD_BINHEX_DECODER
   1.746 +NS_DEFINE_NAMED_CID(NS_BINHEXDECODER_CID);
   1.747 +#endif
   1.748 +NS_DEFINE_NAMED_CID(MOZITXTTOHTMLCONV_CID);
   1.749 +NS_DEFINE_NAMED_CID(NS_DIRINDEX_CID);
   1.750 +NS_DEFINE_NAMED_CID(NS_MIMEHEADERPARAM_CID);
   1.751 +#ifdef NECKO_PROTOCOL_file
   1.752 +NS_DEFINE_NAMED_CID(NS_FILEPROTOCOLHANDLER_CID);
   1.753 +#endif
   1.754 +#ifdef NECKO_PROTOCOL_http
   1.755 +NS_DEFINE_NAMED_CID(NS_HTTPPROTOCOLHANDLER_CID);
   1.756 +NS_DEFINE_NAMED_CID(NS_HTTPSPROTOCOLHANDLER_CID);
   1.757 +NS_DEFINE_NAMED_CID(NS_HTTPBASICAUTH_CID);
   1.758 +NS_DEFINE_NAMED_CID(NS_HTTPDIGESTAUTH_CID);
   1.759 +NS_DEFINE_NAMED_CID(NS_HTTPNTLMAUTH_CID);
   1.760 +NS_DEFINE_NAMED_CID(NS_HTTPAUTHMANAGER_CID);
   1.761 +NS_DEFINE_NAMED_CID(NS_HTTPCHANNELAUTHPROVIDER_CID);
   1.762 +NS_DEFINE_NAMED_CID(NS_HTTPACTIVITYDISTRIBUTOR_CID);
   1.763 +#endif // !NECKO_PROTOCOL_http
   1.764 +#ifdef NECKO_PROTOCOL_ftp
   1.765 +NS_DEFINE_NAMED_CID(NS_FTPPROTOCOLHANDLER_CID);
   1.766 +#endif
   1.767 +#ifdef NECKO_PROTOCOL_res
   1.768 +NS_DEFINE_NAMED_CID(NS_RESPROTOCOLHANDLER_CID);
   1.769 +NS_DEFINE_NAMED_CID(NS_RESURL_CID);
   1.770 +#endif
   1.771 +NS_DEFINE_NAMED_CID(NS_ABOUTPROTOCOLHANDLER_CID);
   1.772 +NS_DEFINE_NAMED_CID(NS_SAFEABOUTPROTOCOLHANDLER_CID);
   1.773 +NS_DEFINE_NAMED_CID(NS_ABOUT_BLANK_MODULE_CID);
   1.774 +NS_DEFINE_NAMED_CID(NS_NESTEDABOUTURI_CID);
   1.775 +#ifdef NECKO_PROTOCOL_about
   1.776 +#ifdef NS_BUILD_REFCNT_LOGGING
   1.777 +NS_DEFINE_NAMED_CID(NS_ABOUT_BLOAT_MODULE_CID);
   1.778 +#endif
   1.779 +NS_DEFINE_NAMED_CID(NS_ABOUT_CACHE_MODULE_CID);
   1.780 +NS_DEFINE_NAMED_CID(NS_ABOUT_CACHE_ENTRY_MODULE_CID);
   1.781 +#endif
   1.782 +NS_DEFINE_NAMED_CID(NS_SOCKSSOCKETPROVIDER_CID);
   1.783 +NS_DEFINE_NAMED_CID(NS_SOCKS4SOCKETPROVIDER_CID);
   1.784 +NS_DEFINE_NAMED_CID(NS_UDPSOCKETPROVIDER_CID);
   1.785 +NS_DEFINE_NAMED_CID(NS_CACHESERVICE_CID);
   1.786 +NS_DEFINE_NAMED_CID(NS_APPLICATIONCACHESERVICE_CID);
   1.787 +NS_DEFINE_NAMED_CID(NS_APPLICATIONCACHENAMESPACE_CID);
   1.788 +NS_DEFINE_NAMED_CID(NS_APPLICATIONCACHE_CID);
   1.789 +NS_DEFINE_NAMED_CID(NS_APPPROTOCOLHANDLER_CID);
   1.790 +#ifdef NECKO_COOKIES
   1.791 +NS_DEFINE_NAMED_CID(NS_COOKIEMANAGER_CID);
   1.792 +NS_DEFINE_NAMED_CID(NS_COOKIESERVICE_CID);
   1.793 +#endif
   1.794 +#ifdef NECKO_WIFI
   1.795 +NS_DEFINE_NAMED_CID(NS_WIFI_MONITOR_COMPONENT_CID);
   1.796 +#endif
   1.797 +#ifdef NECKO_PROTOCOL_data
   1.798 +NS_DEFINE_NAMED_CID(NS_DATAPROTOCOLHANDLER_CID);
   1.799 +#endif
   1.800 +#ifdef NECKO_PROTOCOL_device
   1.801 +NS_DEFINE_NAMED_CID(NS_DEVICEPROTOCOLHANDLER_CID);
   1.802 +#endif
   1.803 +#ifdef NECKO_PROTOCOL_viewsource
   1.804 +NS_DEFINE_NAMED_CID(NS_VIEWSOURCEHANDLER_CID);
   1.805 +#endif
   1.806 +#ifdef NECKO_PROTOCOL_wyciwyg
   1.807 +NS_DEFINE_NAMED_CID(NS_WYCIWYGPROTOCOLHANDLER_CID);
   1.808 +#endif
   1.809 +#ifdef NECKO_PROTOCOL_websocket
   1.810 +NS_DEFINE_NAMED_CID(NS_WEBSOCKETPROTOCOLHANDLER_CID);
   1.811 +NS_DEFINE_NAMED_CID(NS_WEBSOCKETSSLPROTOCOLHANDLER_CID);
   1.812 +#endif
   1.813 +#ifdef NECKO_PROTOCOL_rtsp
   1.814 +NS_DEFINE_NAMED_CID(NS_RTSPPROTOCOLHANDLER_CID);
   1.815 +#endif
   1.816 +#if defined(XP_WIN)
   1.817 +NS_DEFINE_NAMED_CID(NS_NETWORK_LINK_SERVICE_CID);
   1.818 +#elif defined(MOZ_WIDGET_COCOA)
   1.819 +NS_DEFINE_NAMED_CID(NS_NETWORK_LINK_SERVICE_CID);
   1.820 +#elif defined(MOZ_ENABLE_QTNETWORK)
   1.821 +NS_DEFINE_NAMED_CID(NS_NETWORK_LINK_SERVICE_CID);
   1.822 +#elif defined(MOZ_WIDGET_ANDROID)
   1.823 +NS_DEFINE_NAMED_CID(NS_NETWORK_LINK_SERVICE_CID);
   1.824 +#endif
   1.825 +NS_DEFINE_NAMED_CID(NS_SERIALIZATION_HELPER_CID);
   1.826 +NS_DEFINE_NAMED_CID(NS_REDIRECTCHANNELREGISTRAR_CID);
   1.827 +NS_DEFINE_NAMED_CID(NS_CACHE_STORAGE_SERVICE_CID);
   1.828 +NS_DEFINE_NAMED_CID(NS_NETWORKSEER_CID);
   1.829 +
   1.830 +static const mozilla::Module::CIDEntry kNeckoCIDs[] = {
   1.831 +    { &kNS_IOSERVICE_CID, false, nullptr, nsIOServiceConstructor },
   1.832 +    { &kNS_STREAMTRANSPORTSERVICE_CID, false, nullptr, nsStreamTransportServiceConstructor },
   1.833 +    { &kNS_SOCKETTRANSPORTSERVICE_CID, false, nullptr, nsSocketTransportServiceConstructor },
   1.834 +    { &kNS_SERVERSOCKET_CID, false, nullptr, nsServerSocketConstructor },
   1.835 +    { &kNS_UDPSOCKET_CID, false, nullptr, nsUDPSocketConstructor },
   1.836 +    { &kNS_SOCKETPROVIDERSERVICE_CID, false, nullptr, nsSocketProviderService::Create },
   1.837 +    { &kNS_DNSSERVICE_CID, false, nullptr, nsIDNSServiceConstructor },
   1.838 +    { &kNS_IDNSERVICE_CID, false, nullptr, nsIDNServiceConstructor },
   1.839 +    { &kNS_EFFECTIVETLDSERVICE_CID, false, nullptr, nsEffectiveTLDServiceConstructor },
   1.840 +    { &kNS_SIMPLEURI_CID, false, nullptr, nsSimpleURIConstructor },
   1.841 +    { &kNS_SIMPLENESTEDURI_CID, false, nullptr, nsSimpleNestedURIConstructor },
   1.842 +    { &kNS_ASYNCSTREAMCOPIER_CID, false, nullptr, nsAsyncStreamCopierConstructor },
   1.843 +    { &kNS_INPUTSTREAMPUMP_CID, false, nullptr, nsInputStreamPumpConstructor },
   1.844 +    { &kNS_INPUTSTREAMCHANNEL_CID, false, nullptr, nsInputStreamChannelConstructor },
   1.845 +    { &kNS_STREAMLOADER_CID, false, nullptr, nsStreamLoader::Create },
   1.846 +    { &kNS_UNICHARSTREAMLOADER_CID, false, nullptr, nsUnicharStreamLoader::Create },
   1.847 +    { &kNS_DOWNLOADER_CID, false, nullptr, nsDownloaderConstructor },
   1.848 +    { &kNS_BACKGROUNDFILESAVEROUTPUTSTREAM_CID, false, nullptr,
   1.849 +      mozilla::net::BackgroundFileSaverOutputStreamConstructor },
   1.850 +    { &kNS_BACKGROUNDFILESAVERSTREAMLISTENER_CID, false, nullptr,
   1.851 +      mozilla::net::BackgroundFileSaverStreamListenerConstructor },
   1.852 +    { &kNS_SYNCSTREAMLISTENER_CID, false, nullptr, nsSyncStreamListenerConstructor },
   1.853 +    { &kNS_REQUESTOBSERVERPROXY_CID, false, nullptr, nsRequestObserverProxyConstructor },
   1.854 +    { &kNS_SIMPLESTREAMLISTENER_CID, false, nullptr, nsSimpleStreamListenerConstructor },
   1.855 +    { &kNS_STREAMLISTENERTEE_CID, false, nullptr, nsStreamListenerTeeConstructor },
   1.856 +    { &kNS_LOADGROUP_CID, false, nullptr, nsLoadGroupConstructor },
   1.857 +    { &kNS_LOCALFILEINPUTSTREAM_CID, false, nullptr, nsFileInputStream::Create },
   1.858 +    { &kNS_LOCALFILEOUTPUTSTREAM_CID, false, nullptr, nsFileOutputStream::Create },
   1.859 +    { &kNS_PARTIALLOCALFILEINPUTSTREAM_CID, false, nullptr, nsPartialFileInputStream::Create },
   1.860 +    { &kNS_ATOMICLOCALFILEOUTPUTSTREAM_CID, false, nullptr, nsAtomicFileOutputStreamConstructor },
   1.861 +    { &kNS_SAFELOCALFILEOUTPUTSTREAM_CID, false, nullptr, nsSafeFileOutputStreamConstructor },
   1.862 +    { &kNS_LOCALFILESTREAM_CID, false, nullptr, nsFileStreamConstructor },
   1.863 +    { &kNS_URICHECKER_CID, false, nullptr, nsURICheckerConstructor },
   1.864 +    { &kNS_INCREMENTALDOWNLOAD_CID, false, nullptr, net_NewIncrementalDownload },
   1.865 +    { &kNS_STDURLPARSER_CID, false, nullptr, nsStdURLParserConstructor },
   1.866 +    { &kNS_NOAUTHURLPARSER_CID, false, nullptr, nsNoAuthURLParserConstructor },
   1.867 +    { &kNS_AUTHURLPARSER_CID, false, nullptr, nsAuthURLParserConstructor },
   1.868 +    { &kNS_STANDARDURL_CID, false, nullptr, nsStandardURLConstructor },
   1.869 +    { &kNS_ARRAYBUFFERINPUTSTREAM_CID, false, nullptr, ArrayBufferInputStreamConstructor },
   1.870 +    { &kNS_BUFFEREDINPUTSTREAM_CID, false, nullptr, nsBufferedInputStream::Create },
   1.871 +    { &kNS_BUFFEREDOUTPUTSTREAM_CID, false, nullptr, nsBufferedOutputStream::Create },
   1.872 +    { &kNS_MIMEINPUTSTREAM_CID, false, nullptr, nsMIMEInputStreamConstructor },
   1.873 +    { &kNS_PROTOCOLPROXYSERVICE_CID, true, nullptr, nsProtocolProxyServiceConstructor },
   1.874 +    { &kNS_STREAMCONVERTERSERVICE_CID, false, nullptr, CreateNewStreamConvServiceFactory },
   1.875 +    { &kNS_DASHBOARD_CID, false, nullptr, mozilla::net::DashboardConstructor },
   1.876 +#ifdef NECKO_PROTOCOL_ftp
   1.877 +    { &kNS_FTPDIRLISTINGCONVERTER_CID, false, nullptr, CreateNewFTPDirListingConv },
   1.878 +#endif
   1.879 +    { &kNS_NSINDEXEDTOHTMLCONVERTER_CID, false, nullptr, nsIndexedToHTML::Create },
   1.880 +    { &kNS_DIRINDEXPARSER_CID, false, nullptr, nsDirIndexParserConstructor },
   1.881 +    { &kNS_MULTIMIXEDCONVERTER_CID, false, nullptr, CreateNewMultiMixedConvFactory },
   1.882 +    { &kNS_UNKNOWNDECODER_CID, false, nullptr, CreateNewUnknownDecoderFactory },
   1.883 +    { &kNS_BINARYDETECTOR_CID, false, nullptr, CreateNewBinaryDetectorFactory },
   1.884 +    { &kNS_HTTPCOMPRESSCONVERTER_CID, false, nullptr, CreateNewHTTPCompressConvFactory },
   1.885 +    { &kNS_NSTXTTOHTMLCONVERTER_CID, false, nullptr, CreateNewNSTXTToHTMLConvFactory },
   1.886 +#ifdef BUILD_BINHEX_DECODER
   1.887 +    { &kNS_BINHEXDECODER_CID, false, nullptr, nsBinHexDecoderConstructor },
   1.888 +#endif
   1.889 +    { &kMOZITXTTOHTMLCONV_CID, false, nullptr, CreateNewTXTToHTMLConvFactory },
   1.890 +    { &kNS_DIRINDEX_CID, false, nullptr, nsDirIndexConstructor },
   1.891 +    { &kNS_MIMEHEADERPARAM_CID, false, nullptr, nsMIMEHeaderParamImplConstructor },
   1.892 +#ifdef NECKO_PROTOCOL_file
   1.893 +    { &kNS_FILEPROTOCOLHANDLER_CID, false, nullptr, nsFileProtocolHandlerConstructor },
   1.894 +#endif
   1.895 +#ifdef NECKO_PROTOCOL_http
   1.896 +    { &kNS_HTTPPROTOCOLHANDLER_CID, false, nullptr, mozilla::net::nsHttpHandlerConstructor },
   1.897 +    { &kNS_HTTPSPROTOCOLHANDLER_CID, false, nullptr, mozilla::net::nsHttpsHandlerConstructor },
   1.898 +    { &kNS_HTTPBASICAUTH_CID, false, nullptr, mozilla::net::nsHttpBasicAuthConstructor },
   1.899 +    { &kNS_HTTPDIGESTAUTH_CID, false, nullptr, mozilla::net::nsHttpDigestAuthConstructor },
   1.900 +    { &kNS_HTTPNTLMAUTH_CID, false, nullptr, mozilla::net::nsHttpNTLMAuthConstructor },
   1.901 +    { &kNS_HTTPAUTHMANAGER_CID, false, nullptr, mozilla::net::nsHttpAuthManagerConstructor },
   1.902 +    { &kNS_HTTPCHANNELAUTHPROVIDER_CID, false, nullptr, mozilla::net::nsHttpChannelAuthProviderConstructor },
   1.903 +    { &kNS_HTTPACTIVITYDISTRIBUTOR_CID, false, nullptr, mozilla::net::nsHttpActivityDistributorConstructor },
   1.904 +#endif // !NECKO_PROTOCOL_http
   1.905 +#ifdef NECKO_PROTOCOL_ftp
   1.906 +    { &kNS_FTPPROTOCOLHANDLER_CID, false, nullptr, nsFtpProtocolHandlerConstructor },
   1.907 +#endif
   1.908 +#ifdef NECKO_PROTOCOL_res
   1.909 +    { &kNS_RESPROTOCOLHANDLER_CID, false, nullptr, nsResProtocolHandlerConstructor },
   1.910 +    { &kNS_RESURL_CID, false, nullptr, nsResURLConstructor },
   1.911 +#endif
   1.912 +    { &kNS_ABOUTPROTOCOLHANDLER_CID, false, nullptr, nsAboutProtocolHandlerConstructor },
   1.913 +    { &kNS_SAFEABOUTPROTOCOLHANDLER_CID, false, nullptr, nsSafeAboutProtocolHandlerConstructor },
   1.914 +    { &kNS_ABOUT_BLANK_MODULE_CID, false, nullptr, nsAboutBlank::Create },
   1.915 +    { &kNS_NESTEDABOUTURI_CID, false, nullptr, nsNestedAboutURIConstructor },
   1.916 +#ifdef NECKO_PROTOCOL_about
   1.917 +#ifdef NS_BUILD_REFCNT_LOGGING
   1.918 +    { &kNS_ABOUT_BLOAT_MODULE_CID, false, nullptr, nsAboutBloat::Create },
   1.919 +#endif
   1.920 +    { &kNS_ABOUT_CACHE_MODULE_CID, false, nullptr, nsAboutCache::Create },
   1.921 +    { &kNS_ABOUT_CACHE_ENTRY_MODULE_CID, false, nullptr, nsAboutCacheEntryConstructor },
   1.922 +#endif
   1.923 +    { &kNS_SOCKSSOCKETPROVIDER_CID, false, nullptr, nsSOCKSSocketProvider::CreateV5 },
   1.924 +    { &kNS_SOCKS4SOCKETPROVIDER_CID, false, nullptr, nsSOCKSSocketProvider::CreateV4 },
   1.925 +    { &kNS_UDPSOCKETPROVIDER_CID, false, nullptr, nsUDPSocketProviderConstructor },
   1.926 +    { &kNS_CACHESERVICE_CID, false, nullptr, nsCacheService::Create },
   1.927 +    { &kNS_APPLICATIONCACHESERVICE_CID, false, nullptr, nsApplicationCacheServiceConstructor },
   1.928 +    { &kNS_APPLICATIONCACHENAMESPACE_CID, false, nullptr, nsApplicationCacheNamespaceConstructor },
   1.929 +    { &kNS_APPLICATIONCACHE_CID, false, nullptr, nsApplicationCacheConstructor },
   1.930 +    { &kNS_APPPROTOCOLHANDLER_CID, false, nullptr, AppProtocolHandler::Create },
   1.931 +#ifdef NECKO_COOKIES
   1.932 +    { &kNS_COOKIEMANAGER_CID, false, nullptr, nsICookieServiceConstructor },
   1.933 +    { &kNS_COOKIESERVICE_CID, false, nullptr, nsICookieServiceConstructor },
   1.934 +#endif
   1.935 +#ifdef NECKO_WIFI
   1.936 +    { &kNS_WIFI_MONITOR_COMPONENT_CID, false, nullptr, nsWifiMonitorConstructor },
   1.937 +#endif
   1.938 +#ifdef NECKO_PROTOCOL_data
   1.939 +    { &kNS_DATAPROTOCOLHANDLER_CID, false, nullptr, nsDataHandler::Create },
   1.940 +#endif
   1.941 +#ifdef NECKO_PROTOCOL_device
   1.942 +    { &kNS_DEVICEPROTOCOLHANDLER_CID, false, nullptr, nsDeviceProtocolHandlerConstructor},
   1.943 +#endif
   1.944 +#ifdef NECKO_PROTOCOL_viewsource
   1.945 +    { &kNS_VIEWSOURCEHANDLER_CID, false, nullptr, nsViewSourceHandlerConstructor },
   1.946 +#endif
   1.947 +#ifdef NECKO_PROTOCOL_wyciwyg
   1.948 +    { &kNS_WYCIWYGPROTOCOLHANDLER_CID, false, nullptr, nsWyciwygProtocolHandlerConstructor },
   1.949 +#endif
   1.950 +#ifdef NECKO_PROTOCOL_websocket
   1.951 +    { &kNS_WEBSOCKETPROTOCOLHANDLER_CID, false, nullptr,
   1.952 +      mozilla::net::WebSocketChannelConstructor },
   1.953 +    { &kNS_WEBSOCKETSSLPROTOCOLHANDLER_CID, false, nullptr,
   1.954 +      mozilla::net::WebSocketSSLChannelConstructor },
   1.955 +#endif
   1.956 +#ifdef NECKO_PROTOCOL_rtsp
   1.957 +    { &kNS_RTSPPROTOCOLHANDLER_CID, false, nullptr, mozilla::net::RtspHandlerConstructor },
   1.958 +#endif
   1.959 +#if defined(XP_WIN)
   1.960 +    { &kNS_NETWORK_LINK_SERVICE_CID, false, nullptr, nsNotifyAddrListenerConstructor },
   1.961 +#elif defined(MOZ_WIDGET_COCOA)
   1.962 +    { &kNS_NETWORK_LINK_SERVICE_CID, false, nullptr, nsNetworkLinkServiceConstructor },
   1.963 +#elif defined(MOZ_ENABLE_QTNETWORK)
   1.964 +    { &kNS_NETWORK_LINK_SERVICE_CID, false, nullptr, nsQtNetworkLinkServiceConstructor },
   1.965 +#elif defined(MOZ_WIDGET_ANDROID)
   1.966 +    { &kNS_NETWORK_LINK_SERVICE_CID, false, nullptr, nsAndroidNetworkLinkServiceConstructor },
   1.967 +#endif
   1.968 +    { &kNS_SERIALIZATION_HELPER_CID, false, nullptr, nsSerializationHelperConstructor },
   1.969 +    { &kNS_REDIRECTCHANNELREGISTRAR_CID, false, nullptr, RedirectChannelRegistrarConstructor },
   1.970 +    { &kNS_CACHE_STORAGE_SERVICE_CID, false, nullptr, CacheStorageServiceConstructor },
   1.971 +    { &kNS_NETWORKSEER_CID, false, nullptr, mozilla::net::Seer::Create },
   1.972 +    { nullptr }
   1.973 +};
   1.974 +
   1.975 +static const mozilla::Module::ContractIDEntry kNeckoContracts[] = {
   1.976 +    { NS_IOSERVICE_CONTRACTID, &kNS_IOSERVICE_CID },
   1.977 +    { NS_NETUTIL_CONTRACTID, &kNS_IOSERVICE_CID },
   1.978 +    { NS_STREAMTRANSPORTSERVICE_CONTRACTID, &kNS_STREAMTRANSPORTSERVICE_CID },
   1.979 +    { NS_SOCKETTRANSPORTSERVICE_CONTRACTID, &kNS_SOCKETTRANSPORTSERVICE_CID },
   1.980 +    { NS_SERVERSOCKET_CONTRACTID, &kNS_SERVERSOCKET_CID },
   1.981 +    { NS_UDPSOCKET_CONTRACTID, &kNS_UDPSOCKET_CID },
   1.982 +    { NS_SOCKETPROVIDERSERVICE_CONTRACTID, &kNS_SOCKETPROVIDERSERVICE_CID },
   1.983 +    { NS_DNSSERVICE_CONTRACTID, &kNS_DNSSERVICE_CID },
   1.984 +    { NS_IDNSERVICE_CONTRACTID, &kNS_IDNSERVICE_CID },
   1.985 +    { NS_EFFECTIVETLDSERVICE_CONTRACTID, &kNS_EFFECTIVETLDSERVICE_CID },
   1.986 +    { NS_SIMPLEURI_CONTRACTID, &kNS_SIMPLEURI_CID },
   1.987 +    { NS_ASYNCSTREAMCOPIER_CONTRACTID, &kNS_ASYNCSTREAMCOPIER_CID },
   1.988 +    { NS_INPUTSTREAMPUMP_CONTRACTID, &kNS_INPUTSTREAMPUMP_CID },
   1.989 +    { NS_INPUTSTREAMCHANNEL_CONTRACTID, &kNS_INPUTSTREAMCHANNEL_CID },
   1.990 +    { NS_STREAMLOADER_CONTRACTID, &kNS_STREAMLOADER_CID },
   1.991 +    { NS_UNICHARSTREAMLOADER_CONTRACTID, &kNS_UNICHARSTREAMLOADER_CID },
   1.992 +    { NS_DOWNLOADER_CONTRACTID, &kNS_DOWNLOADER_CID },
   1.993 +    { NS_BACKGROUNDFILESAVEROUTPUTSTREAM_CONTRACTID, &kNS_BACKGROUNDFILESAVEROUTPUTSTREAM_CID },
   1.994 +    { NS_BACKGROUNDFILESAVERSTREAMLISTENER_CONTRACTID, &kNS_BACKGROUNDFILESAVERSTREAMLISTENER_CID },
   1.995 +    { NS_SYNCSTREAMLISTENER_CONTRACTID, &kNS_SYNCSTREAMLISTENER_CID },
   1.996 +    { NS_REQUESTOBSERVERPROXY_CONTRACTID, &kNS_REQUESTOBSERVERPROXY_CID },
   1.997 +    { NS_SIMPLESTREAMLISTENER_CONTRACTID, &kNS_SIMPLESTREAMLISTENER_CID },
   1.998 +    { NS_STREAMLISTENERTEE_CONTRACTID, &kNS_STREAMLISTENERTEE_CID },
   1.999 +    { NS_LOADGROUP_CONTRACTID, &kNS_LOADGROUP_CID },
  1.1000 +    { NS_LOCALFILEINPUTSTREAM_CONTRACTID, &kNS_LOCALFILEINPUTSTREAM_CID },
  1.1001 +    { NS_LOCALFILEOUTPUTSTREAM_CONTRACTID, &kNS_LOCALFILEOUTPUTSTREAM_CID },
  1.1002 +    { NS_PARTIALLOCALFILEINPUTSTREAM_CONTRACTID, &kNS_PARTIALLOCALFILEINPUTSTREAM_CID },
  1.1003 +    { NS_ATOMICLOCALFILEOUTPUTSTREAM_CONTRACTID, &kNS_ATOMICLOCALFILEOUTPUTSTREAM_CID },
  1.1004 +    { NS_SAFELOCALFILEOUTPUTSTREAM_CONTRACTID, &kNS_SAFELOCALFILEOUTPUTSTREAM_CID },
  1.1005 +    { NS_LOCALFILESTREAM_CONTRACTID, &kNS_LOCALFILESTREAM_CID },
  1.1006 +    { NS_URICHECKER_CONTRACT_ID, &kNS_URICHECKER_CID },
  1.1007 +    { NS_INCREMENTALDOWNLOAD_CONTRACTID, &kNS_INCREMENTALDOWNLOAD_CID },
  1.1008 +    { NS_STDURLPARSER_CONTRACTID, &kNS_STDURLPARSER_CID },
  1.1009 +    { NS_NOAUTHURLPARSER_CONTRACTID, &kNS_NOAUTHURLPARSER_CID },
  1.1010 +    { NS_AUTHURLPARSER_CONTRACTID, &kNS_AUTHURLPARSER_CID },
  1.1011 +    { NS_STANDARDURL_CONTRACTID, &kNS_STANDARDURL_CID },
  1.1012 +    { NS_ARRAYBUFFERINPUTSTREAM_CONTRACTID, &kNS_ARRAYBUFFERINPUTSTREAM_CID },
  1.1013 +    { NS_BUFFEREDINPUTSTREAM_CONTRACTID, &kNS_BUFFEREDINPUTSTREAM_CID },
  1.1014 +    { NS_BUFFEREDOUTPUTSTREAM_CONTRACTID, &kNS_BUFFEREDOUTPUTSTREAM_CID },
  1.1015 +    { NS_MIMEINPUTSTREAM_CONTRACTID, &kNS_MIMEINPUTSTREAM_CID },
  1.1016 +    { NS_PROTOCOLPROXYSERVICE_CONTRACTID, &kNS_PROTOCOLPROXYSERVICE_CID },
  1.1017 +    { NS_STREAMCONVERTERSERVICE_CONTRACTID, &kNS_STREAMCONVERTERSERVICE_CID },
  1.1018 +    { NS_DASHBOARD_CONTRACTID, &kNS_DASHBOARD_CID },
  1.1019 +#ifdef NECKO_PROTOCOL_ftp
  1.1020 +    { NS_ISTREAMCONVERTER_KEY FTP_TO_INDEX, &kNS_FTPDIRLISTINGCONVERTER_CID },
  1.1021 +#endif
  1.1022 +    { NS_ISTREAMCONVERTER_KEY INDEX_TO_HTML, &kNS_NSINDEXEDTOHTMLCONVERTER_CID },
  1.1023 +    { NS_DIRINDEXPARSER_CONTRACTID, &kNS_DIRINDEXPARSER_CID },
  1.1024 +    { NS_ISTREAMCONVERTER_KEY MULTI_MIXED_X, &kNS_MULTIMIXEDCONVERTER_CID },
  1.1025 +    { NS_ISTREAMCONVERTER_KEY MULTI_BYTERANGES, &kNS_MULTIMIXEDCONVERTER_CID },
  1.1026 +    { NS_ISTREAMCONVERTER_KEY MULTI_MIXED, &kNS_MULTIMIXEDCONVERTER_CID },
  1.1027 +    { NS_ISTREAMCONVERTER_KEY UNKNOWN_CONTENT, &kNS_UNKNOWNDECODER_CID },
  1.1028 +    { NS_GENERIC_CONTENT_SNIFFER, &kNS_UNKNOWNDECODER_CID },
  1.1029 +    { NS_BINARYDETECTOR_CONTRACTID, &kNS_BINARYDETECTOR_CID },
  1.1030 +    { NS_ISTREAMCONVERTER_KEY GZIP_TO_UNCOMPRESSED, &kNS_HTTPCOMPRESSCONVERTER_CID },
  1.1031 +    { NS_ISTREAMCONVERTER_KEY XGZIP_TO_UNCOMPRESSED, &kNS_HTTPCOMPRESSCONVERTER_CID },
  1.1032 +    { NS_ISTREAMCONVERTER_KEY COMPRESS_TO_UNCOMPRESSED, &kNS_HTTPCOMPRESSCONVERTER_CID },
  1.1033 +    { NS_ISTREAMCONVERTER_KEY XCOMPRESS_TO_UNCOMPRESSED, &kNS_HTTPCOMPRESSCONVERTER_CID },
  1.1034 +    { NS_ISTREAMCONVERTER_KEY DEFLATE_TO_UNCOMPRESSED, &kNS_HTTPCOMPRESSCONVERTER_CID },
  1.1035 +    { NS_ISTREAMCONVERTER_KEY PLAIN_TO_HTML, &kNS_NSTXTTOHTMLCONVERTER_CID },
  1.1036 +#ifdef BUILD_BINHEX_DECODER
  1.1037 +    { NS_ISTREAMCONVERTER_KEY BINHEX_TO_WILD, &kNS_BINHEXDECODER_CID },
  1.1038 +#endif
  1.1039 +    { MOZ_TXTTOHTMLCONV_CONTRACTID, &kMOZITXTTOHTMLCONV_CID },
  1.1040 +    { "@mozilla.org/dirIndex;1", &kNS_DIRINDEX_CID },
  1.1041 +    { NS_MIMEHEADERPARAM_CONTRACTID, &kNS_MIMEHEADERPARAM_CID },
  1.1042 +#ifdef NECKO_PROTOCOL_file
  1.1043 +    { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "file", &kNS_FILEPROTOCOLHANDLER_CID },
  1.1044 +#endif
  1.1045 +#ifdef NECKO_PROTOCOL_http
  1.1046 +    { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "http", &kNS_HTTPPROTOCOLHANDLER_CID },
  1.1047 +    { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "https", &kNS_HTTPSPROTOCOLHANDLER_CID },
  1.1048 +    { NS_HTTP_AUTHENTICATOR_CONTRACTID_PREFIX "basic", &kNS_HTTPBASICAUTH_CID },
  1.1049 +    { NS_HTTP_AUTHENTICATOR_CONTRACTID_PREFIX "digest", &kNS_HTTPDIGESTAUTH_CID },
  1.1050 +    { NS_HTTP_AUTHENTICATOR_CONTRACTID_PREFIX "ntlm", &kNS_HTTPNTLMAUTH_CID },
  1.1051 +    { NS_HTTPAUTHMANAGER_CONTRACTID, &kNS_HTTPAUTHMANAGER_CID },
  1.1052 +    { NS_HTTPCHANNELAUTHPROVIDER_CONTRACTID, &kNS_HTTPCHANNELAUTHPROVIDER_CID },
  1.1053 +    { NS_HTTPACTIVITYDISTRIBUTOR_CONTRACTID, &kNS_HTTPACTIVITYDISTRIBUTOR_CID },
  1.1054 +#endif // !NECKO_PROTOCOL_http
  1.1055 +#ifdef NECKO_PROTOCOL_ftp
  1.1056 +    { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "ftp", &kNS_FTPPROTOCOLHANDLER_CID },
  1.1057 +#endif
  1.1058 +#ifdef NECKO_PROTOCOL_res
  1.1059 +    { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "resource", &kNS_RESPROTOCOLHANDLER_CID },
  1.1060 +#endif
  1.1061 +    { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "about", &kNS_ABOUTPROTOCOLHANDLER_CID },
  1.1062 +    { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "moz-safe-about", &kNS_SAFEABOUTPROTOCOLHANDLER_CID },
  1.1063 +    { NS_ABOUT_MODULE_CONTRACTID_PREFIX "blank", &kNS_ABOUT_BLANK_MODULE_CID },
  1.1064 +#ifdef NECKO_PROTOCOL_about
  1.1065 +#ifdef NS_BUILD_REFCNT_LOGGING
  1.1066 +    { NS_ABOUT_MODULE_CONTRACTID_PREFIX "bloat", &kNS_ABOUT_BLOAT_MODULE_CID },
  1.1067 +#endif
  1.1068 +    { NS_ABOUT_MODULE_CONTRACTID_PREFIX "cache", &kNS_ABOUT_CACHE_MODULE_CID },
  1.1069 +    { NS_ABOUT_MODULE_CONTRACTID_PREFIX "cache-entry", &kNS_ABOUT_CACHE_ENTRY_MODULE_CID },
  1.1070 +#endif
  1.1071 +    { NS_NETWORK_SOCKET_CONTRACTID_PREFIX "socks", &kNS_SOCKSSOCKETPROVIDER_CID },
  1.1072 +    { NS_NETWORK_SOCKET_CONTRACTID_PREFIX "socks4", &kNS_SOCKS4SOCKETPROVIDER_CID },
  1.1073 +    { NS_NETWORK_SOCKET_CONTRACTID_PREFIX "udp", &kNS_UDPSOCKETPROVIDER_CID },
  1.1074 +    { NS_CACHESERVICE_CONTRACTID, &kNS_CACHESERVICE_CID },
  1.1075 +    { NS_APPLICATIONCACHESERVICE_CONTRACTID, &kNS_APPLICATIONCACHESERVICE_CID },
  1.1076 +    { NS_APPLICATIONCACHENAMESPACE_CONTRACTID, &kNS_APPLICATIONCACHENAMESPACE_CID },
  1.1077 +    { NS_APPLICATIONCACHE_CONTRACTID, &kNS_APPLICATIONCACHE_CID },
  1.1078 +    { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "app", &kNS_APPPROTOCOLHANDLER_CID },
  1.1079 +#ifdef NECKO_COOKIES
  1.1080 +    { NS_COOKIEMANAGER_CONTRACTID, &kNS_COOKIEMANAGER_CID },
  1.1081 +    { NS_COOKIESERVICE_CONTRACTID, &kNS_COOKIESERVICE_CID },
  1.1082 +#endif
  1.1083 +#ifdef NECKO_WIFI
  1.1084 +    { NS_WIFI_MONITOR_CONTRACTID, &kNS_WIFI_MONITOR_COMPONENT_CID },
  1.1085 +#endif
  1.1086 +#ifdef NECKO_PROTOCOL_data
  1.1087 +    { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "data", &kNS_DATAPROTOCOLHANDLER_CID },
  1.1088 +#endif
  1.1089 +#ifdef NECKO_PROTOCOL_device
  1.1090 +    { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "moz-device", &kNS_DEVICEPROTOCOLHANDLER_CID },
  1.1091 +#endif
  1.1092 +#ifdef NECKO_PROTOCOL_viewsource
  1.1093 +    { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "view-source", &kNS_VIEWSOURCEHANDLER_CID },
  1.1094 +#endif
  1.1095 +#ifdef NECKO_PROTOCOL_wyciwyg
  1.1096 +    { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "wyciwyg", &kNS_WYCIWYGPROTOCOLHANDLER_CID },
  1.1097 +#endif
  1.1098 +#ifdef NECKO_PROTOCOL_websocket
  1.1099 +    { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "ws", &kNS_WEBSOCKETPROTOCOLHANDLER_CID },
  1.1100 +    { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "wss", &kNS_WEBSOCKETSSLPROTOCOLHANDLER_CID },
  1.1101 +#endif
  1.1102 +#ifdef NECKO_PROTOCOL_rtsp
  1.1103 +    { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "rtsp", &kNS_RTSPPROTOCOLHANDLER_CID },
  1.1104 +#endif
  1.1105 +#if defined(XP_WIN)
  1.1106 +    { NS_NETWORK_LINK_SERVICE_CONTRACTID, &kNS_NETWORK_LINK_SERVICE_CID },
  1.1107 +#elif defined(MOZ_WIDGET_COCOA)
  1.1108 +    { NS_NETWORK_LINK_SERVICE_CONTRACTID, &kNS_NETWORK_LINK_SERVICE_CID },
  1.1109 +#elif defined(MOZ_ENABLE_QTNETWORK)
  1.1110 +    { NS_NETWORK_LINK_SERVICE_CONTRACTID, &kNS_NETWORK_LINK_SERVICE_CID },
  1.1111 +#elif defined(MOZ_WIDGET_ANDROID)
  1.1112 +    { NS_NETWORK_LINK_SERVICE_CONTRACTID, &kNS_NETWORK_LINK_SERVICE_CID },
  1.1113 +#endif
  1.1114 +    { NS_SERIALIZATION_HELPER_CONTRACTID, &kNS_SERIALIZATION_HELPER_CID },
  1.1115 +    { NS_REDIRECTCHANNELREGISTRAR_CONTRACTID, &kNS_REDIRECTCHANNELREGISTRAR_CID },
  1.1116 +    { NS_CACHE_STORAGE_SERVICE_CONTRACTID, &kNS_CACHE_STORAGE_SERVICE_CID },
  1.1117 +    { NS_NETWORKSEER_CONTRACTID, &kNS_NETWORKSEER_CID },
  1.1118 +    { nullptr }
  1.1119 +};
  1.1120 +
  1.1121 +static const mozilla::Module kNeckoModule = {
  1.1122 +    mozilla::Module::kVersion,
  1.1123 +    kNeckoCIDs,
  1.1124 +    kNeckoContracts,
  1.1125 +    kNeckoCategories,
  1.1126 +    nullptr,
  1.1127 +    nsNetStartup,
  1.1128 +    nsNetShutdown
  1.1129 +};
  1.1130 +
  1.1131 +NSMODULE_DEFN(necko) = &kNeckoModule;

mercurial