LCOV - code coverage report
Current view: top level - netwerk/build - nsNetModule.cpp (source / functions) Hit Total Coverage
Test: output.info Lines: 46 201 22.9 %
Date: 2017-07-14 16:53:18 Functions: 36 86 41.9 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /* vim: set sw=4 ts=8 et tw=80 : */
       3             : /* This Source Code Form is subject to the terms of the Mozilla Public
       4             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       5             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
       6             : 
       7             : #include "necko-config.h"
       8             : 
       9             : #define ALLOW_LATE_HTTPLOG_H_INCLUDE 1
      10             : #include "base/basictypes.h"
      11             : 
      12             : #include "nsCOMPtr.h"
      13             : #include "nsIClassInfoImpl.h"
      14             : #include "mozilla/ModuleUtils.h"
      15             : #include "nsIComponentManager.h"
      16             : #include "nsIServiceManager.h"
      17             : #include "nsICategoryManager.h"
      18             : #include "nsSocketProviderService.h"
      19             : #include "nscore.h"
      20             : #include "nsSimpleURI.h"
      21             : #include "nsSimpleNestedURI.h"
      22             : #include "nsLoadGroup.h"
      23             : #include "nsStreamLoader.h"
      24             : #include "nsIncrementalStreamLoader.h"
      25             : #include "nsUnicharStreamLoader.h"
      26             : #include "nsFileStreams.h"
      27             : #include "nsBufferedStreams.h"
      28             : #include "nsMIMEInputStream.h"
      29             : #include "nsSOCKSSocketProvider.h"
      30             : #include "nsCacheService.h"
      31             : #include "nsDiskCacheDeviceSQL.h"
      32             : #include "nsApplicationCache.h"
      33             : #include "nsApplicationCacheService.h"
      34             : #include "nsMimeTypes.h"
      35             : #include "nsDNSPrefetch.h"
      36             : #include "nsAboutProtocolHandler.h"
      37             : #include "nsXULAppAPI.h"
      38             : #include "nsCategoryCache.h"
      39             : #include "nsIContentSniffer.h"
      40             : #include "Predictor.h"
      41             : #include "nsIThreadPool.h"
      42             : #include "mozilla/net/NeckoChild.h"
      43             : 
      44             : #include "nsNetCID.h"
      45             : 
      46             : #ifndef XP_MACOSX
      47             : #define BUILD_BINHEX_DECODER 1
      48             : #endif
      49             : 
      50             : #if defined(XP_MACOSX) || defined(XP_WIN) || defined(XP_LINUX)
      51             : #define BUILD_NETWORK_INFO_SERVICE 1
      52             : #endif
      53             : 
      54             : typedef nsCategoryCache<nsIContentSniffer> ContentSnifferCache;
      55             : ContentSnifferCache* gNetSniffers = nullptr;
      56             : ContentSnifferCache* gDataSniffers = nullptr;
      57             : 
      58             : ///////////////////////////////////////////////////////////////////////////////
      59             : 
      60             : #include "nsIOService.h"
      61             : typedef mozilla::net::nsIOService nsIOService;
      62           3 : NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIOService, nsIOService::GetInstance)
      63             : 
      64             : #include "nsDNSService2.h"
      65           3 : NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIDNSService,
      66             :   nsDNSService::GetXPCOMSingleton)
      67             : 
      68             : #include "nsProtocolProxyService.h"
      69             : typedef mozilla::net::nsProtocolProxyService nsProtocolProxyService;
      70           2 : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsProtocolProxyService, Init)
      71             : 
      72             : #include "nsStreamTransportService.h"
      73             : typedef mozilla::net::nsStreamTransportService nsStreamTransportService;
      74           6 : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsStreamTransportService, Init)
      75             : 
      76             : #include "nsSocketTransportService2.h"
      77             : typedef mozilla::net::nsSocketTransportService nsSocketTransportService;
      78             : #undef LOG
      79             : #undef LOG_ENABLED
      80           6 : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsSocketTransportService, Init)
      81             : 
      82             : #include "nsServerSocket.h"
      83             : typedef mozilla::net::nsServerSocket nsServerSocket;
      84           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsServerSocket)
      85             : 
      86             : #include "TLSServerSocket.h"
      87             : typedef mozilla::net::TLSServerSocket TLSServerSocket;
      88           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(TLSServerSocket)
      89             : 
      90             : #include "nsUDPSocket.h"
      91             : typedef mozilla::net::nsUDPSocket nsUDPSocket;
      92           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsUDPSocket)
      93             : 
      94             : #include "nsUDPSocketProvider.h"
      95           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsUDPSocketProvider)
      96             : 
      97             : #include "nsAsyncStreamCopier.h"
      98           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsAsyncStreamCopier)
      99             : 
     100             : #include "nsInputStreamPump.h"
     101           2 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsInputStreamPump)
     102             : 
     103             : #include "nsInputStreamChannel.h"
     104             : typedef mozilla::net::nsInputStreamChannel nsInputStreamChannel;
     105          12 : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsInputStreamChannel, Init)
     106             : 
     107             : #include "nsDownloader.h"
     108           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsDownloader)
     109             : 
     110             : #include "BackgroundFileSaver.h"
     111             : namespace mozilla {
     112             : namespace net {
     113           0 : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(BackgroundFileSaverOutputStream, Init)
     114           0 : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(BackgroundFileSaverStreamListener, Init)
     115             : } // namespace net
     116             : } // namespace mozilla
     117             : 
     118             : #include "nsSyncStreamListener.h"
     119           0 : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsSyncStreamListener, Init)
     120             : 
     121           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsAtomicFileOutputStream)
     122             : 
     123          12 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsSafeFileOutputStream)
     124             : 
     125           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsFileStream)
     126             : 
     127             : typedef mozilla::net::nsLoadGroup nsLoadGroup;
     128         144 : NS_GENERIC_AGGREGATED_CONSTRUCTOR_INIT(nsLoadGroup, Init)
     129             : 
     130             : #include "ArrayBufferInputStream.h"
     131           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(ArrayBufferInputStream)
     132             : 
     133             : #include "nsEffectiveTLDService.h"
     134           4 : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsEffectiveTLDService, Init)
     135             : 
     136             : #include "nsSerializationHelper.h"
     137           4 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsSerializationHelper)
     138             : 
     139             : #include "RedirectChannelRegistrar.h"
     140             : typedef mozilla::net::RedirectChannelRegistrar RedirectChannelRegistrar;
     141           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(RedirectChannelRegistrar)
     142             : 
     143             : #include "CacheStorageService.h"
     144             : typedef mozilla::net::CacheStorageService CacheStorageService;
     145           2 : NS_GENERIC_FACTORY_CONSTRUCTOR(CacheStorageService)
     146             : 
     147             : #include "LoadContextInfo.h"
     148             : typedef mozilla::net::LoadContextInfoFactory LoadContextInfoFactory;
     149           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(LoadContextInfoFactory)
     150             : 
     151             : ///////////////////////////////////////////////////////////////////////////////
     152             : 
     153             : #include "mozilla/net/CaptivePortalService.h"
     154             : namespace mozilla {
     155             : namespace net {
     156           6 :   NS_GENERIC_FACTORY_CONSTRUCTOR(CaptivePortalService)
     157             : } // namespace net
     158             : } // namespace mozilla
     159             : 
     160             : #include "RequestContextService.h"
     161             : typedef mozilla::net::RequestContextService RequestContextService;
     162           6 : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(RequestContextService, Init)
     163             : 
     164             : ///////////////////////////////////////////////////////////////////////////////
     165             : 
     166             : extern nsresult
     167             : net_NewIncrementalDownload(nsISupports *, const nsIID &, void **);
     168             : 
     169             : #define NS_INCREMENTALDOWNLOAD_CID \
     170             : { /* a62af1ba-79b3-4896-8aaf-b148bfce4280 */         \
     171             :     0xa62af1ba,                                      \
     172             :     0x79b3,                                          \
     173             :     0x4896,                                          \
     174             :     {0x8a, 0xaf, 0xb1, 0x48, 0xbf, 0xce, 0x42, 0x80} \
     175             : }
     176             : 
     177             : ///////////////////////////////////////////////////////////////////////////////
     178             : 
     179             : #include "nsMIMEHeaderParamImpl.h"
     180             : 
     181           2 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsMIMEHeaderParamImpl)
     182             : ///////////////////////////////////////////////////////////////////////////////
     183             : 
     184             : #include "nsRequestObserverProxy.h"
     185             : #include "nsSimpleStreamListener.h"
     186             : #include "nsDirIndexParser.h"
     187             : #include "nsDirIndex.h"
     188             : 
     189             : typedef mozilla::net::nsRequestObserverProxy nsRequestObserverProxy;
     190           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsRequestObserverProxy)
     191             : typedef mozilla::net::nsSimpleStreamListener nsSimpleStreamListener;
     192           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsSimpleStreamListener)
     193           0 : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsDirIndexParser, Init)
     194           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsDirIndex)
     195             : 
     196             : ///////////////////////////////////////////////////////////////////////////////
     197             : 
     198             : #include "nsStreamListenerTee.h"
     199             : typedef mozilla::net::nsStreamListenerTee nsStreamListenerTee;
     200           4 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsStreamListenerTee)
     201             : 
     202             : ///////////////////////////////////////////////////////////////////////////////
     203             : 
     204             : #ifdef NECKO_COOKIES
     205             : #include "nsCookieService.h"
     206           1 : NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsICookieService,
     207             :   nsCookieService::GetXPCOMSingleton)
     208             : #endif
     209             : 
     210             : ///////////////////////////////////////////////////////////////////////////////
     211             : #ifdef NECKO_WIFI
     212             : 
     213             : #include "nsWifiMonitor.h"
     214             : #undef LOG
     215             : #undef LOG_ENABLED
     216           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsWifiMonitor)
     217             : 
     218             : #endif
     219             : 
     220             : ///////////////////////////////////////////////////////////////////////////////
     221             : // protocols
     222             : ///////////////////////////////////////////////////////////////////////////////
     223             : 
     224             : // about:blank is mandatory
     225             : #include "nsAboutProtocolHandler.h"
     226             : #include "nsAboutBlank.h"
     227             : typedef mozilla::net::nsAboutProtocolHandler nsAboutProtocolHandler;
     228             : typedef mozilla::net::nsSafeAboutProtocolHandler nsSafeAboutProtocolHandler;
     229             : typedef mozilla::net::nsNestedAboutURI nsNestedAboutURI;
     230           6 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsAboutProtocolHandler)
     231           6 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsSafeAboutProtocolHandler)
     232           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsNestedAboutURI)
     233             : 
     234             : #ifdef NECKO_PROTOCOL_about
     235             : // about
     236             : #include "nsAboutCache.h"
     237             : #include "nsAboutCacheEntry.h"
     238           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsAboutCacheEntry)
     239             : #endif
     240             : 
     241           2 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsApplicationCacheService)
     242           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsApplicationCacheNamespace)
     243           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsApplicationCache)
     244             : 
     245             : #ifdef NECKO_PROTOCOL_file
     246             : // file
     247             : #include "nsFileProtocolHandler.h"
     248           6 : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsFileProtocolHandler, Init)
     249             : #endif
     250             : 
     251             : #ifdef NECKO_PROTOCOL_ftp
     252             : // ftp
     253             : #include "nsFtpProtocolHandler.h"
     254           0 : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsFtpProtocolHandler, Init)
     255             : #endif
     256             : 
     257             : #ifdef NECKO_PROTOCOL_http
     258             : // http/https
     259             : #include "nsHttpHandler.h"
     260             : #include "Http2Compression.h"
     261             : #undef LOG
     262             : #undef LOG_ENABLED
     263             : #include "nsHttpAuthManager.h"
     264             : #include "nsHttpChannelAuthProvider.h"
     265             : #include "nsHttpBasicAuth.h"
     266             : #include "nsHttpDigestAuth.h"
     267             : #include "nsHttpNTLMAuth.h"
     268             : #include "nsHttpActivityDistributor.h"
     269             : #include "ThrottleQueue.h"
     270             : #include "BackgroundChannelRegistrar.h"
     271             : #undef LOG
     272             : #undef LOG_ENABLED
     273             : namespace mozilla {
     274             : namespace net {
     275           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsHttpNTLMAuth)
     276           4 : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsHttpHandler, Init)
     277           2 : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsHttpsHandler, Init)
     278           0 : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsHttpAuthManager, Init)
     279          12 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsHttpChannelAuthProvider)
     280           2 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsHttpActivityDistributor)
     281           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsHttpBasicAuth)
     282           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsHttpDigestAuth)
     283           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(ThrottleQueue)
     284           2 : NS_GENERIC_FACTORY_CONSTRUCTOR(BackgroundChannelRegistrar)
     285             : } // namespace net
     286             : } // namespace mozilla
     287             : #endif // !NECKO_PROTOCOL_http
     288             : 
     289             : #include "mozilla/net/Dashboard.h"
     290             : namespace mozilla {
     291             : namespace net {
     292           0 :   NS_GENERIC_FACTORY_CONSTRUCTOR(Dashboard)
     293             : } // namespace net
     294             : } // namespace mozilla
     295             : 
     296             : #ifdef XP_WIN
     297             : #include "../socket/nsNamedPipeService.h"
     298             : namespace mozilla {
     299             : namespace net {
     300             : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(NamedPipeService, Init)
     301             : } // namespace net
     302             : } // namespace mozilla
     303             : #endif
     304             : 
     305             : #ifdef NECKO_PROTOCOL_res
     306             : // resource
     307             : #include "nsResProtocolHandler.h"
     308             : #include "ExtensionProtocolHandler.h"
     309             : #include "SubstitutingProtocolHandler.h"
     310           6 : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsResProtocolHandler, Init)
     311             : 
     312             : namespace mozilla {
     313           0 : NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(ExtensionProtocolHandler,
     314             :     ExtensionProtocolHandler::GetSingleton)
     315           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(SubstitutingURL)
     316             : } // namespace mozilla
     317             : #endif
     318             : 
     319             : #ifdef NECKO_PROTOCOL_device
     320             : #include "nsDeviceProtocolHandler.h"
     321             : typedef mozilla::net::nsDeviceProtocolHandler nsDeviceProtocolHandler;
     322           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsDeviceProtocolHandler)
     323             : #endif
     324             : 
     325             : #ifdef NECKO_PROTOCOL_viewsource
     326             : #include "nsViewSourceHandler.h"
     327             : typedef mozilla::net::nsViewSourceHandler nsViewSourceHandler;
     328           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsViewSourceHandler)
     329             : #endif
     330             : 
     331             : #ifdef NECKO_PROTOCOL_data
     332             : #include "nsDataHandler.h"
     333             : #endif
     334             : 
     335             : #ifdef NECKO_PROTOCOL_wyciwyg
     336             : #include "nsWyciwygProtocolHandler.h"
     337           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsWyciwygProtocolHandler)
     338             : #endif
     339             : 
     340             : #ifdef NECKO_PROTOCOL_websocket
     341             : #include "WebSocketChannel.h"
     342             : #include "WebSocketChannelChild.h"
     343             : namespace mozilla {
     344             : namespace net {
     345             : static BaseWebSocketChannel*
     346           0 : WebSocketChannelConstructor(bool aSecure)
     347             : {
     348           0 :   if (IsNeckoChild()) {
     349           0 :     return new WebSocketChannelChild(aSecure);
     350             :   }
     351             : 
     352           0 :   if (aSecure) {
     353           0 :     return new WebSocketSSLChannel;
     354             :   }
     355           0 :   return new WebSocketChannel;
     356             : }
     357             : 
     358             : #define WEB_SOCKET_HANDLER_CONSTRUCTOR(type, secure)  \
     359             : static nsresult                                       \
     360             : type##Constructor(nsISupports *aOuter, REFNSIID aIID, \
     361             :                   void **aResult)                     \
     362             : {                                                     \
     363             :   nsresult rv;                                        \
     364             :                                                       \
     365             :   BaseWebSocketChannel * inst;                        \
     366             :                                                       \
     367             :   *aResult = nullptr;                                 \
     368             :   if (nullptr != aOuter) {                            \
     369             :     rv = NS_ERROR_NO_AGGREGATION;                     \
     370             :     return rv;                                        \
     371             :   }                                                   \
     372             :   inst = WebSocketChannelConstructor(secure);         \
     373             :   NS_ADDREF(inst);                                    \
     374             :   rv = inst->QueryInterface(aIID, aResult);           \
     375             :   NS_RELEASE(inst);                                   \
     376             :   return rv;                                          \
     377             : }
     378             : 
     379           0 : WEB_SOCKET_HANDLER_CONSTRUCTOR(WebSocketChannel, false)
     380           0 : WEB_SOCKET_HANDLER_CONSTRUCTOR(WebSocketSSLChannel, true)
     381             : #undef WEB_SOCKET_HANDLER_CONSTRUCTOR
     382             : } // namespace net
     383             : } // namespace mozilla
     384             : #endif
     385             : 
     386             : #ifdef NECKO_PROTOCOL_rtsp
     387             : #include "RtspHandler.h"
     388             : namespace mozilla {
     389             : namespace net {
     390             : NS_GENERIC_FACTORY_CONSTRUCTOR(RtspHandler)
     391             : } // namespace mozilla::net
     392             : } // namespace mozilla
     393             : #endif
     394             : 
     395             : ///////////////////////////////////////////////////////////////////////////////
     396             : 
     397             : #include "nsURLParsers.h"
     398           6 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsNoAuthURLParser)
     399           6 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsAuthURLParser)
     400           6 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsStdURLParser)
     401             : 
     402             : #include "nsStandardURL.h"
     403             : typedef mozilla::net::nsStandardURL nsStandardURL;
     404         134 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsStandardURL)
     405             : typedef mozilla::net::nsSimpleURI nsSimpleURI;
     406         128 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsSimpleURI)
     407             : 
     408             : #ifdef MOZ_RUST_URLPARSE
     409             : #include "mozilla/net/RustURL.h"
     410             : typedef mozilla::net::RustURL RustURL;
     411           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(RustURL)
     412             : #endif // MOZ_RUST_URLPARSE
     413             : 
     414             : typedef mozilla::net::nsSimpleNestedURI nsSimpleNestedURI;
     415           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsSimpleNestedURI)
     416             : 
     417             : ///////////////////////////////////////////////////////////////////////////////
     418             : 
     419             : #include "nsIDNService.h"
     420           6 : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsIDNService, Init)
     421             : 
     422             : ///////////////////////////////////////////////////////////////////////////////
     423             : #if defined(XP_WIN)
     424             : #include "nsNotifyAddrListener.h"
     425             : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsNotifyAddrListener, Init)
     426             : #elif defined(MOZ_WIDGET_COCOA)
     427             : #include "nsNetworkLinkService.h"
     428             : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsNetworkLinkService, Init)
     429             : #elif defined(MOZ_WIDGET_ANDROID)
     430             : #include "nsAndroidNetworkLinkService.h"
     431             : NS_GENERIC_FACTORY_CONSTRUCTOR(nsAndroidNetworkLinkService)
     432             : #elif defined(XP_LINUX)
     433             : #include "nsNotifyAddrListener_Linux.h"
     434           2 : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsNotifyAddrListener, Init)
     435             : #endif
     436             : 
     437             : ///////////////////////////////////////////////////////////////////////////////
     438             : 
     439             : #ifdef NECKO_PROTOCOL_ftp
     440             : #include "nsFTPDirListingConv.h"
     441             : nsresult NS_NewFTPDirListingConv(nsFTPDirListingConv** result);
     442             : #endif
     443             : 
     444             : #include "nsStreamConverterService.h"
     445             : #include "nsMultiMixedConv.h"
     446             : #include "nsHTTPCompressConv.h"
     447             : #include "mozTXTToHTMLConv.h"
     448             : #include "nsUnknownDecoder.h"
     449             : 
     450             : #include "nsTXTToHTMLConv.h"
     451             : namespace mozilla {
     452             : namespace net {
     453           0 : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsTXTToHTMLConv, Init)
     454             : } // namespace net
     455             : } // namespace mozilla
     456             : 
     457             : ///////////////////////////////////////////////////////////////////////////////
     458             : 
     459             : #ifdef BUILD_NETWORK_INFO_SERVICE
     460             : #include "nsNetworkInfoService.h"
     461             : typedef mozilla::net::nsNetworkInfoService nsNetworkInfoService;
     462           0 : NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsNetworkInfoService, Init)
     463             : #endif // BUILD_NETWORK_INFO_SERVICE
     464             : 
     465             : 
     466             : #include "nsIndexedToHTML.h"
     467             : #ifdef BUILD_BINHEX_DECODER
     468             : #include "nsBinHexDecoder.h"
     469             : #endif
     470             : 
     471             : nsresult NS_NewMultiMixedConv (nsMultiMixedConv** result);
     472             : nsresult MOZ_NewTXTToHTMLConv (mozTXTToHTMLConv** result);
     473             : nsresult NS_NewHTTPCompressConv  (mozilla::net::nsHTTPCompressConv ** result);
     474             : nsresult NS_NewStreamConv(nsStreamConverterService **aStreamConv);
     475             : 
     476             : #define FTP_TO_INDEX                 "?from=text/ftp-dir&to=application/http-index-format"
     477             : #define INDEX_TO_HTML                "?from=application/http-index-format&to=text/html"
     478             : #define MULTI_MIXED_X                "?from=multipart/x-mixed-replace&to=*/*"
     479             : #define MULTI_MIXED                  "?from=multipart/mixed&to=*/*"
     480             : #define MULTI_BYTERANGES             "?from=multipart/byteranges&to=*/*"
     481             : #define UNKNOWN_CONTENT              "?from=" UNKNOWN_CONTENT_TYPE "&to=*/*"
     482             : #define GZIP_TO_UNCOMPRESSED         "?from=gzip&to=uncompressed"
     483             : #define XGZIP_TO_UNCOMPRESSED        "?from=x-gzip&to=uncompressed"
     484             : #define BROTLI_TO_UNCOMPRESSED       "?from=br&to=uncompressed"
     485             : #define COMPRESS_TO_UNCOMPRESSED     "?from=compress&to=uncompressed"
     486             : #define XCOMPRESS_TO_UNCOMPRESSED    "?from=x-compress&to=uncompressed"
     487             : #define DEFLATE_TO_UNCOMPRESSED      "?from=deflate&to=uncompressed"
     488             : #define PLAIN_TO_HTML                "?from=text/plain&to=text/html"
     489             : 
     490             : #ifdef BUILD_BINHEX_DECODER
     491             : #define BINHEX_TO_WILD               "?from=application/mac-binhex40&to=*/*"
     492             : #endif
     493             : 
     494             : static const mozilla::Module::CategoryEntry kNeckoCategories[] = {
     495             :     { NS_ISTREAMCONVERTER_KEY, FTP_TO_INDEX, "" },
     496             :     { NS_ISTREAMCONVERTER_KEY, INDEX_TO_HTML, "" },
     497             :     { NS_ISTREAMCONVERTER_KEY, MULTI_MIXED_X, "" },
     498             :     { NS_ISTREAMCONVERTER_KEY, MULTI_MIXED, "" },
     499             :     { NS_ISTREAMCONVERTER_KEY, MULTI_BYTERANGES, "" },
     500             :     { NS_ISTREAMCONVERTER_KEY, UNKNOWN_CONTENT, "" },
     501             :     { NS_ISTREAMCONVERTER_KEY, GZIP_TO_UNCOMPRESSED, "" },
     502             :     { NS_ISTREAMCONVERTER_KEY, XGZIP_TO_UNCOMPRESSED, "" },
     503             :     { NS_ISTREAMCONVERTER_KEY, BROTLI_TO_UNCOMPRESSED, "" },
     504             :     { NS_ISTREAMCONVERTER_KEY, COMPRESS_TO_UNCOMPRESSED, "" },
     505             :     { NS_ISTREAMCONVERTER_KEY, XCOMPRESS_TO_UNCOMPRESSED, "" },
     506             :     { NS_ISTREAMCONVERTER_KEY, DEFLATE_TO_UNCOMPRESSED, "" },
     507             : #ifdef BUILD_BINHEX_DECODER
     508             :     { NS_ISTREAMCONVERTER_KEY, BINHEX_TO_WILD, "" },
     509             : #endif
     510             :     { NS_ISTREAMCONVERTER_KEY, PLAIN_TO_HTML, "" },
     511             :     NS_BINARYDETECTOR_CATEGORYENTRY,
     512             :     { nullptr }
     513             : };
     514             : 
     515             : #ifdef BUILD_BINHEX_DECODER
     516             : typedef mozilla::net::nsBinHexDecoder nsBinHexDecoder;
     517           0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsBinHexDecoder)
     518             : #endif
     519             : 
     520             : static nsresult
     521           0 : CreateNewStreamConvServiceFactory(nsISupports* aOuter, REFNSIID aIID, void **aResult)
     522             : {
     523           0 :     if (!aResult) {
     524           0 :         return NS_ERROR_INVALID_POINTER;
     525             :     }
     526           0 :     if (aOuter) {
     527           0 :         *aResult = nullptr;
     528           0 :         return NS_ERROR_NO_AGGREGATION;
     529             :     }
     530           0 :     nsStreamConverterService* inst = nullptr;
     531           0 :     nsresult rv = NS_NewStreamConv(&inst);
     532           0 :     if (NS_FAILED(rv)) {
     533           0 :         *aResult = nullptr;
     534           0 :         return rv;
     535             :     }
     536           0 :     rv = inst->QueryInterface(aIID, aResult);
     537           0 :     if (NS_FAILED(rv)) {
     538           0 :         *aResult = nullptr;
     539             :     }
     540           0 :     NS_RELEASE(inst);             /* get rid of extra refcnt */
     541           0 :     return rv;
     542             : }
     543             : 
     544             : #ifdef NECKO_PROTOCOL_ftp
     545             : static nsresult
     546           0 : CreateNewFTPDirListingConv(nsISupports* aOuter, REFNSIID aIID, void **aResult)
     547             : {
     548           0 :     if (!aResult) {
     549           0 :         return NS_ERROR_INVALID_POINTER;
     550             :     }
     551           0 :     if (aOuter) {
     552           0 :         *aResult = nullptr;
     553           0 :         return NS_ERROR_NO_AGGREGATION;
     554             :     }
     555           0 :     nsFTPDirListingConv* inst = nullptr;
     556           0 :     nsresult rv = NS_NewFTPDirListingConv(&inst);
     557           0 :     if (NS_FAILED(rv)) {
     558           0 :         *aResult = nullptr;
     559           0 :         return rv;
     560             :     }
     561           0 :     rv = inst->QueryInterface(aIID, aResult);
     562           0 :     if (NS_FAILED(rv)) {
     563           0 :         *aResult = nullptr;
     564             :     }
     565           0 :     NS_RELEASE(inst);             /* get rid of extra refcnt */
     566           0 :     return rv;
     567             : }
     568             : #endif
     569             : 
     570             : static nsresult
     571           0 : CreateNewMultiMixedConvFactory(nsISupports* aOuter, REFNSIID aIID, void **aResult)
     572             : {
     573           0 :     if (!aResult) {
     574           0 :         return NS_ERROR_INVALID_POINTER;
     575             :     }
     576           0 :     if (aOuter) {
     577           0 :         *aResult = nullptr;
     578           0 :         return NS_ERROR_NO_AGGREGATION;
     579             :     }
     580           0 :     nsMultiMixedConv* inst = nullptr;
     581           0 :     nsresult rv = NS_NewMultiMixedConv(&inst);
     582           0 :     if (NS_FAILED(rv)) {
     583           0 :         *aResult = nullptr;
     584           0 :         return rv;
     585             :     }
     586           0 :     rv = inst->QueryInterface(aIID, aResult);
     587           0 :     if (NS_FAILED(rv)) {
     588           0 :         *aResult = nullptr;
     589             :     }
     590           0 :     NS_RELEASE(inst);             /* get rid of extra refcnt */
     591           0 :     return rv;
     592             : }
     593             : 
     594             : static nsresult
     595           0 : CreateNewTXTToHTMLConvFactory(nsISupports* aOuter, REFNSIID aIID, void **aResult)
     596             : {
     597           0 :     if (!aResult) {
     598           0 :         return NS_ERROR_INVALID_POINTER;
     599             :     }
     600           0 :     if (aOuter) {
     601           0 :         *aResult = nullptr;
     602           0 :         return NS_ERROR_NO_AGGREGATION;
     603             :     }
     604           0 :     mozTXTToHTMLConv* inst = nullptr;
     605           0 :     nsresult rv = MOZ_NewTXTToHTMLConv(&inst);
     606           0 :     if (NS_FAILED(rv)) {
     607           0 :         *aResult = nullptr;
     608           0 :         return rv;
     609             :     }
     610           0 :     rv = inst->QueryInterface(aIID, aResult);
     611           0 :     if (NS_FAILED(rv)) {
     612           0 :         *aResult = nullptr;
     613             :     }
     614           0 :     NS_RELEASE(inst);             /* get rid of extra refcnt */
     615           0 :     return rv;
     616             : }
     617             : 
     618             : static nsresult
     619           0 : CreateNewHTTPCompressConvFactory (nsISupports* aOuter, REFNSIID aIID, void **aResult)
     620             : {
     621           0 :     if (!aResult) {
     622           0 :         return NS_ERROR_INVALID_POINTER;
     623             :     }
     624           0 :     if (aOuter) {
     625           0 :         *aResult = nullptr;
     626           0 :         return NS_ERROR_NO_AGGREGATION;
     627             :     }
     628           0 :     mozilla::net::nsHTTPCompressConv* inst = nullptr;
     629           0 :     nsresult rv = NS_NewHTTPCompressConv (&inst);
     630           0 :     if (NS_FAILED(rv)) {
     631           0 :         *aResult = nullptr;
     632           0 :         return rv;
     633             :     }
     634           0 :     rv = inst->QueryInterface(aIID, aResult);
     635           0 :     if (NS_FAILED(rv)) {
     636           0 :         *aResult = nullptr;
     637             :     }
     638           0 :     NS_RELEASE(inst);             /* get rid of extra refcnt */
     639           0 :     return rv;
     640             : }
     641             : 
     642             : static nsresult
     643           0 : CreateNewUnknownDecoderFactory(nsISupports *aOuter, REFNSIID aIID, void **aResult)
     644             : {
     645             :   nsresult rv;
     646             : 
     647           0 :   if (!aResult) {
     648           0 :     return NS_ERROR_NULL_POINTER;
     649             :   }
     650           0 :   *aResult = nullptr;
     651             : 
     652           0 :   if (aOuter) {
     653           0 :     return NS_ERROR_NO_AGGREGATION;
     654             :   }
     655             : 
     656             :   nsUnknownDecoder *inst;
     657             : 
     658           0 :   inst = new nsUnknownDecoder();
     659           0 :   if (!inst) {
     660           0 :     return NS_ERROR_OUT_OF_MEMORY;
     661             :   }
     662           0 :   NS_ADDREF(inst);
     663           0 :   rv = inst->QueryInterface(aIID, aResult);
     664           0 :   NS_RELEASE(inst);
     665             : 
     666           0 :   return rv;
     667             : }
     668             : 
     669             : static nsresult
     670           1 : CreateNewBinaryDetectorFactory(nsISupports *aOuter, REFNSIID aIID, void **aResult)
     671             : {
     672             :   nsresult rv;
     673             : 
     674           1 :   if (!aResult) {
     675           0 :     return NS_ERROR_NULL_POINTER;
     676             :   }
     677           1 :   *aResult = nullptr;
     678             : 
     679           1 :   if (aOuter) {
     680           0 :     return NS_ERROR_NO_AGGREGATION;
     681             :   }
     682             : 
     683           1 :   auto* inst = new nsBinaryDetector();
     684           1 :   if (!inst) {
     685           0 :     return NS_ERROR_OUT_OF_MEMORY;
     686             :   }
     687           1 :   NS_ADDREF(inst);
     688           1 :   rv = inst->QueryInterface(aIID, aResult);
     689           1 :   NS_RELEASE(inst);
     690             : 
     691           1 :   return rv;
     692             : }
     693             : 
     694             : ///////////////////////////////////////////////////////////////////////////////
     695             : // Module implementation for the net library
     696             : 
     697             : // Net module startup hook
     698           3 : static nsresult nsNetStartup()
     699             : {
     700           3 :     return NS_OK;
     701             : }
     702             : 
     703             : // Net module shutdown hook
     704           0 : static void nsNetShutdown()
     705             : {
     706             :     // Release the url parser that the stdurl is holding.
     707           0 :     nsStandardURL::ShutdownGlobalObjects();
     708             : 
     709             :     // Release global state used by the URL helper module.
     710           0 :     net_ShutdownURLHelper();
     711             : #ifdef XP_MACOSX
     712             :     net_ShutdownURLHelperOSX();
     713             : #endif
     714             : 
     715             :     // Release DNS service reference.
     716           0 :     nsDNSPrefetch::Shutdown();
     717             : 
     718             : #ifdef NECKO_PROTOCOL_websocket
     719             :     // Release the Websocket Admission Manager
     720           0 :     mozilla::net::WebSocketChannel::Shutdown();
     721             : #endif // NECKO_PROTOCOL_websocket
     722             : 
     723             : #ifdef NECKO_PROTOCOL_http
     724           0 :     mozilla::net::Http2CompressionCleanup();
     725             : #endif // NECKO_PROTOCOL_http
     726             : 
     727           0 :     delete gNetSniffers;
     728           0 :     gNetSniffers = nullptr;
     729           0 :     delete gDataSniffers;
     730           0 :     gDataSniffers = nullptr;
     731           0 : }
     732             : 
     733             : NS_DEFINE_NAMED_CID(NS_IOSERVICE_CID);
     734             : NS_DEFINE_NAMED_CID(NS_STREAMTRANSPORTSERVICE_CID);
     735             : NS_DEFINE_NAMED_CID(NS_SOCKETTRANSPORTSERVICE_CID);
     736             : NS_DEFINE_NAMED_CID(NS_SERVERSOCKET_CID);
     737             : NS_DEFINE_NAMED_CID(NS_TLSSERVERSOCKET_CID);
     738             : NS_DEFINE_NAMED_CID(NS_UDPSOCKET_CID);
     739             : NS_DEFINE_NAMED_CID(NS_SOCKETPROVIDERSERVICE_CID);
     740             : NS_DEFINE_NAMED_CID(NS_DNSSERVICE_CID);
     741             : NS_DEFINE_NAMED_CID(NS_IDNSERVICE_CID);
     742             : NS_DEFINE_NAMED_CID(NS_EFFECTIVETLDSERVICE_CID);
     743             : NS_DEFINE_NAMED_CID(NS_SIMPLEURI_CID);
     744             : NS_DEFINE_NAMED_CID(NS_SIMPLENESTEDURI_CID);
     745             : NS_DEFINE_NAMED_CID(NS_ASYNCSTREAMCOPIER_CID);
     746             : NS_DEFINE_NAMED_CID(NS_INPUTSTREAMPUMP_CID);
     747             : NS_DEFINE_NAMED_CID(NS_INPUTSTREAMCHANNEL_CID);
     748             : NS_DEFINE_NAMED_CID(NS_STREAMLOADER_CID);
     749             : NS_DEFINE_NAMED_CID(NS_INCREMENTALSTREAMLOADER_CID);
     750             : NS_DEFINE_NAMED_CID(NS_UNICHARSTREAMLOADER_CID);
     751             : NS_DEFINE_NAMED_CID(NS_DOWNLOADER_CID);
     752             : NS_DEFINE_NAMED_CID(NS_BACKGROUNDFILESAVEROUTPUTSTREAM_CID);
     753             : NS_DEFINE_NAMED_CID(NS_BACKGROUNDFILESAVERSTREAMLISTENER_CID);
     754             : NS_DEFINE_NAMED_CID(NS_SYNCSTREAMLISTENER_CID);
     755             : NS_DEFINE_NAMED_CID(NS_REQUESTOBSERVERPROXY_CID);
     756             : NS_DEFINE_NAMED_CID(NS_SIMPLESTREAMLISTENER_CID);
     757             : NS_DEFINE_NAMED_CID(NS_STREAMLISTENERTEE_CID);
     758             : NS_DEFINE_NAMED_CID(NS_LOADGROUP_CID);
     759             : NS_DEFINE_NAMED_CID(NS_LOCALFILEINPUTSTREAM_CID);
     760             : NS_DEFINE_NAMED_CID(NS_LOCALFILEOUTPUTSTREAM_CID);
     761             : NS_DEFINE_NAMED_CID(NS_ATOMICLOCALFILEOUTPUTSTREAM_CID);
     762             : NS_DEFINE_NAMED_CID(NS_SAFELOCALFILEOUTPUTSTREAM_CID);
     763             : NS_DEFINE_NAMED_CID(NS_LOCALFILESTREAM_CID);
     764             : NS_DEFINE_NAMED_CID(NS_INCREMENTALDOWNLOAD_CID);
     765             : NS_DEFINE_NAMED_CID(NS_STDURLPARSER_CID);
     766             : NS_DEFINE_NAMED_CID(NS_NOAUTHURLPARSER_CID);
     767             : NS_DEFINE_NAMED_CID(NS_AUTHURLPARSER_CID);
     768             : NS_DEFINE_NAMED_CID(NS_STANDARDURL_CID);
     769             : #ifdef MOZ_RUST_URLPARSE
     770             : NS_DEFINE_NAMED_CID(NS_RUSTURL_CID);
     771             : #endif
     772             : NS_DEFINE_NAMED_CID(NS_ARRAYBUFFERINPUTSTREAM_CID);
     773             : NS_DEFINE_NAMED_CID(NS_BUFFEREDINPUTSTREAM_CID);
     774             : NS_DEFINE_NAMED_CID(NS_BUFFEREDOUTPUTSTREAM_CID);
     775             : NS_DEFINE_NAMED_CID(NS_MIMEINPUTSTREAM_CID);
     776             : NS_DEFINE_NAMED_CID(NS_PROTOCOLPROXYSERVICE_CID);
     777             : NS_DEFINE_NAMED_CID(NS_STREAMCONVERTERSERVICE_CID);
     778             : #if defined(XP_WIN)
     779             : NS_DEFINE_NAMED_CID(NS_NAMEDPIPESERVICE_CID);
     780             : #endif
     781             : NS_DEFINE_NAMED_CID(NS_DASHBOARD_CID);
     782             : #ifdef NECKO_PROTOCOL_ftp
     783             : NS_DEFINE_NAMED_CID(NS_FTPDIRLISTINGCONVERTER_CID);
     784             : #endif
     785             : NS_DEFINE_NAMED_CID(NS_NSINDEXEDTOHTMLCONVERTER_CID);
     786             : NS_DEFINE_NAMED_CID(NS_DIRINDEXPARSER_CID);
     787             : NS_DEFINE_NAMED_CID(NS_MULTIMIXEDCONVERTER_CID);
     788             : NS_DEFINE_NAMED_CID(NS_UNKNOWNDECODER_CID);
     789             : NS_DEFINE_NAMED_CID(NS_BINARYDETECTOR_CID);
     790             : NS_DEFINE_NAMED_CID(NS_HTTPCOMPRESSCONVERTER_CID);
     791             : NS_DEFINE_NAMED_CID(NS_NSTXTTOHTMLCONVERTER_CID);
     792             : #ifdef BUILD_BINHEX_DECODER
     793             : NS_DEFINE_NAMED_CID(NS_BINHEXDECODER_CID);
     794             : #endif
     795             : NS_DEFINE_NAMED_CID(MOZITXTTOHTMLCONV_CID);
     796             : NS_DEFINE_NAMED_CID(NS_DIRINDEX_CID);
     797             : NS_DEFINE_NAMED_CID(NS_MIMEHEADERPARAM_CID);
     798             : #ifdef NECKO_PROTOCOL_file
     799             : NS_DEFINE_NAMED_CID(NS_FILEPROTOCOLHANDLER_CID);
     800             : #endif
     801             : #ifdef NECKO_PROTOCOL_http
     802             : NS_DEFINE_NAMED_CID(NS_HTTPPROTOCOLHANDLER_CID);
     803             : NS_DEFINE_NAMED_CID(NS_HTTPSPROTOCOLHANDLER_CID);
     804             : NS_DEFINE_NAMED_CID(NS_HTTPBASICAUTH_CID);
     805             : NS_DEFINE_NAMED_CID(NS_HTTPDIGESTAUTH_CID);
     806             : NS_DEFINE_NAMED_CID(NS_HTTPNTLMAUTH_CID);
     807             : NS_DEFINE_NAMED_CID(NS_HTTPAUTHMANAGER_CID);
     808             : NS_DEFINE_NAMED_CID(NS_HTTPCHANNELAUTHPROVIDER_CID);
     809             : NS_DEFINE_NAMED_CID(NS_HTTPACTIVITYDISTRIBUTOR_CID);
     810             : NS_DEFINE_NAMED_CID(NS_THROTTLEQUEUE_CID);
     811             : NS_DEFINE_NAMED_CID(NS_BACKGROUNDCHANNELREGISTRAR_CID);
     812             : #endif // !NECKO_PROTOCOL_http
     813             : #ifdef NECKO_PROTOCOL_ftp
     814             : NS_DEFINE_NAMED_CID(NS_FTPPROTOCOLHANDLER_CID);
     815             : #endif
     816             : #ifdef NECKO_PROTOCOL_res
     817             : NS_DEFINE_NAMED_CID(NS_RESPROTOCOLHANDLER_CID);
     818             : NS_DEFINE_NAMED_CID(NS_EXTENSIONPROTOCOLHANDLER_CID);
     819             : NS_DEFINE_NAMED_CID(NS_SUBSTITUTINGURL_CID);
     820             : #endif
     821             : NS_DEFINE_NAMED_CID(NS_ABOUTPROTOCOLHANDLER_CID);
     822             : NS_DEFINE_NAMED_CID(NS_SAFEABOUTPROTOCOLHANDLER_CID);
     823             : NS_DEFINE_NAMED_CID(NS_ABOUT_BLANK_MODULE_CID);
     824             : NS_DEFINE_NAMED_CID(NS_NESTEDABOUTURI_CID);
     825             : #ifdef NECKO_PROTOCOL_about
     826             : NS_DEFINE_NAMED_CID(NS_ABOUT_CACHE_MODULE_CID);
     827             : NS_DEFINE_NAMED_CID(NS_ABOUT_CACHE_ENTRY_MODULE_CID);
     828             : #endif
     829             : NS_DEFINE_NAMED_CID(NS_SOCKSSOCKETPROVIDER_CID);
     830             : NS_DEFINE_NAMED_CID(NS_SOCKS4SOCKETPROVIDER_CID);
     831             : NS_DEFINE_NAMED_CID(NS_UDPSOCKETPROVIDER_CID);
     832             : NS_DEFINE_NAMED_CID(NS_CACHESERVICE_CID);
     833             : NS_DEFINE_NAMED_CID(NS_APPLICATIONCACHESERVICE_CID);
     834             : NS_DEFINE_NAMED_CID(NS_APPLICATIONCACHENAMESPACE_CID);
     835             : NS_DEFINE_NAMED_CID(NS_APPLICATIONCACHE_CID);
     836             : #ifdef NECKO_COOKIES
     837             : NS_DEFINE_NAMED_CID(NS_COOKIEMANAGER_CID);
     838             : NS_DEFINE_NAMED_CID(NS_COOKIESERVICE_CID);
     839             : #endif
     840             : #ifdef NECKO_WIFI
     841             : NS_DEFINE_NAMED_CID(NS_WIFI_MONITOR_COMPONENT_CID);
     842             : #endif
     843             : #ifdef NECKO_PROTOCOL_data
     844             : NS_DEFINE_NAMED_CID(NS_DATAPROTOCOLHANDLER_CID);
     845             : #endif
     846             : #ifdef NECKO_PROTOCOL_device
     847             : NS_DEFINE_NAMED_CID(NS_DEVICEPROTOCOLHANDLER_CID);
     848             : #endif
     849             : #ifdef NECKO_PROTOCOL_viewsource
     850             : NS_DEFINE_NAMED_CID(NS_VIEWSOURCEHANDLER_CID);
     851             : #endif
     852             : #ifdef NECKO_PROTOCOL_wyciwyg
     853             : NS_DEFINE_NAMED_CID(NS_WYCIWYGPROTOCOLHANDLER_CID);
     854             : #endif
     855             : #ifdef NECKO_PROTOCOL_websocket
     856             : NS_DEFINE_NAMED_CID(NS_WEBSOCKETPROTOCOLHANDLER_CID);
     857             : NS_DEFINE_NAMED_CID(NS_WEBSOCKETSSLPROTOCOLHANDLER_CID);
     858             : #endif
     859             : #ifdef NECKO_PROTOCOL_rtsp
     860             : NS_DEFINE_NAMED_CID(NS_RTSPPROTOCOLHANDLER_CID);
     861             : #endif
     862             : #if defined(XP_WIN)
     863             : NS_DEFINE_NAMED_CID(NS_NETWORK_LINK_SERVICE_CID);
     864             : #elif defined(MOZ_WIDGET_COCOA)
     865             : NS_DEFINE_NAMED_CID(NS_NETWORK_LINK_SERVICE_CID);
     866             : #elif defined(MOZ_WIDGET_ANDROID)
     867             : NS_DEFINE_NAMED_CID(NS_NETWORK_LINK_SERVICE_CID);
     868             : #elif defined(XP_LINUX)
     869             : NS_DEFINE_NAMED_CID(NS_NETWORK_LINK_SERVICE_CID);
     870             : #endif
     871             : NS_DEFINE_NAMED_CID(NS_SERIALIZATION_HELPER_CID);
     872             : NS_DEFINE_NAMED_CID(NS_REDIRECTCHANNELREGISTRAR_CID);
     873             : NS_DEFINE_NAMED_CID(NS_CACHE_STORAGE_SERVICE_CID);
     874             : NS_DEFINE_NAMED_CID(NS_NSILOADCONTEXTINFOFACTORY_CID);
     875             : NS_DEFINE_NAMED_CID(NS_NETWORKPREDICTOR_CID);
     876             : NS_DEFINE_NAMED_CID(NS_CAPTIVEPORTAL_CID);
     877             : NS_DEFINE_NAMED_CID(NS_REQUESTCONTEXTSERVICE_CID);
     878             : #ifdef BUILD_NETWORK_INFO_SERVICE
     879             : NS_DEFINE_NAMED_CID(NETWORKINFOSERVICE_CID);
     880             : #endif // BUILD_NETWORK_INFO_SERVICE
     881             : 
     882             : static const mozilla::Module::CIDEntry kNeckoCIDs[] = {
     883             :     { &kNS_IOSERVICE_CID, false, nullptr, nsIOServiceConstructor },
     884             :     { &kNS_STREAMTRANSPORTSERVICE_CID, false, nullptr, nsStreamTransportServiceConstructor },
     885             :     { &kNS_SOCKETTRANSPORTSERVICE_CID, false, nullptr, nsSocketTransportServiceConstructor },
     886             :     { &kNS_SERVERSOCKET_CID, false, nullptr, nsServerSocketConstructor },
     887             :     { &kNS_TLSSERVERSOCKET_CID, false, nullptr, TLSServerSocketConstructor },
     888             :     { &kNS_UDPSOCKET_CID, false, nullptr, nsUDPSocketConstructor },
     889             :     { &kNS_SOCKETPROVIDERSERVICE_CID, false, nullptr, nsSocketProviderService::Create },
     890             :     { &kNS_DNSSERVICE_CID, false, nullptr, nsIDNSServiceConstructor },
     891             :     { &kNS_IDNSERVICE_CID, false, nullptr, nsIDNServiceConstructor },
     892             :     { &kNS_EFFECTIVETLDSERVICE_CID, false, nullptr, nsEffectiveTLDServiceConstructor },
     893             :     { &kNS_SIMPLEURI_CID, false, nullptr, nsSimpleURIConstructor },
     894             :     { &kNS_SIMPLENESTEDURI_CID, false, nullptr, nsSimpleNestedURIConstructor },
     895             :     { &kNS_ASYNCSTREAMCOPIER_CID, false, nullptr, nsAsyncStreamCopierConstructor },
     896             :     { &kNS_INPUTSTREAMPUMP_CID, false, nullptr, nsInputStreamPumpConstructor },
     897             :     { &kNS_INPUTSTREAMCHANNEL_CID, false, nullptr, nsInputStreamChannelConstructor },
     898             :     { &kNS_STREAMLOADER_CID, false, nullptr, mozilla::net::nsStreamLoader::Create },
     899             :     { &kNS_INCREMENTALSTREAMLOADER_CID, false, nullptr, nsIncrementalStreamLoader::Create },
     900             :     { &kNS_UNICHARSTREAMLOADER_CID, false, nullptr, nsUnicharStreamLoader::Create },
     901             :     { &kNS_DOWNLOADER_CID, false, nullptr, nsDownloaderConstructor },
     902             :     { &kNS_BACKGROUNDFILESAVEROUTPUTSTREAM_CID, false, nullptr,
     903             :       mozilla::net::BackgroundFileSaverOutputStreamConstructor },
     904             :     { &kNS_BACKGROUNDFILESAVERSTREAMLISTENER_CID, false, nullptr,
     905             :       mozilla::net::BackgroundFileSaverStreamListenerConstructor },
     906             :     { &kNS_SYNCSTREAMLISTENER_CID, false, nullptr, nsSyncStreamListenerConstructor },
     907             :     { &kNS_REQUESTOBSERVERPROXY_CID, false, nullptr, nsRequestObserverProxyConstructor },
     908             :     { &kNS_SIMPLESTREAMLISTENER_CID, false, nullptr, nsSimpleStreamListenerConstructor },
     909             :     { &kNS_STREAMLISTENERTEE_CID, false, nullptr, nsStreamListenerTeeConstructor },
     910             :     { &kNS_LOADGROUP_CID, false, nullptr, nsLoadGroupConstructor },
     911             :     { &kNS_LOCALFILEINPUTSTREAM_CID, false, nullptr, nsFileInputStream::Create },
     912             :     { &kNS_LOCALFILEOUTPUTSTREAM_CID, false, nullptr, nsFileOutputStream::Create },
     913             :     { &kNS_ATOMICLOCALFILEOUTPUTSTREAM_CID, false, nullptr, nsAtomicFileOutputStreamConstructor },
     914             :     { &kNS_SAFELOCALFILEOUTPUTSTREAM_CID, false, nullptr, nsSafeFileOutputStreamConstructor },
     915             :     { &kNS_LOCALFILESTREAM_CID, false, nullptr, nsFileStreamConstructor },
     916             :     { &kNS_INCREMENTALDOWNLOAD_CID, false, nullptr, net_NewIncrementalDownload },
     917             :     { &kNS_STDURLPARSER_CID, false, nullptr, nsStdURLParserConstructor },
     918             :     { &kNS_NOAUTHURLPARSER_CID, false, nullptr, nsNoAuthURLParserConstructor },
     919             :     { &kNS_AUTHURLPARSER_CID, false, nullptr, nsAuthURLParserConstructor },
     920             :     { &kNS_STANDARDURL_CID, false, nullptr, nsStandardURLConstructor },
     921             : #ifdef MOZ_RUST_URLPARSE
     922             :     { &kNS_RUSTURL_CID, false, nullptr, RustURLConstructor },
     923             : #endif
     924             :     { &kNS_ARRAYBUFFERINPUTSTREAM_CID, false, nullptr, ArrayBufferInputStreamConstructor },
     925             :     { &kNS_BUFFEREDINPUTSTREAM_CID, false, nullptr, nsBufferedInputStream::Create },
     926             :     { &kNS_BUFFEREDOUTPUTSTREAM_CID, false, nullptr, nsBufferedOutputStream::Create },
     927             :     { &kNS_MIMEINPUTSTREAM_CID, false, nullptr, nsMIMEInputStreamConstructor },
     928             :     { &kNS_PROTOCOLPROXYSERVICE_CID, true, nullptr, nsProtocolProxyServiceConstructor },
     929             :     { &kNS_STREAMCONVERTERSERVICE_CID, false, nullptr, CreateNewStreamConvServiceFactory },
     930             : #if defined (XP_WIN)
     931             :     { &kNS_NAMEDPIPESERVICE_CID, false, NULL, mozilla::net::NamedPipeServiceConstructor },
     932             : #endif
     933             :     { &kNS_DASHBOARD_CID, false, nullptr, mozilla::net::DashboardConstructor },
     934             : #ifdef NECKO_PROTOCOL_ftp
     935             :     { &kNS_FTPDIRLISTINGCONVERTER_CID, false, nullptr, CreateNewFTPDirListingConv },
     936             : #endif
     937             :     { &kNS_NSINDEXEDTOHTMLCONVERTER_CID, false, nullptr, nsIndexedToHTML::Create },
     938             :     { &kNS_DIRINDEXPARSER_CID, false, nullptr, nsDirIndexParserConstructor },
     939             :     { &kNS_MULTIMIXEDCONVERTER_CID, false, nullptr, CreateNewMultiMixedConvFactory },
     940             :     { &kNS_UNKNOWNDECODER_CID, false, nullptr, CreateNewUnknownDecoderFactory },
     941             :     { &kNS_BINARYDETECTOR_CID, false, nullptr, CreateNewBinaryDetectorFactory },
     942             :     { &kNS_HTTPCOMPRESSCONVERTER_CID, false, nullptr, CreateNewHTTPCompressConvFactory },
     943             :     { &kNS_NSTXTTOHTMLCONVERTER_CID, false, nullptr, mozilla::net::nsTXTToHTMLConvConstructor },
     944             : #ifdef BUILD_BINHEX_DECODER
     945             :     { &kNS_BINHEXDECODER_CID, false, nullptr, nsBinHexDecoderConstructor },
     946             : #endif
     947             :     { &kMOZITXTTOHTMLCONV_CID, false, nullptr, CreateNewTXTToHTMLConvFactory },
     948             :     { &kNS_DIRINDEX_CID, false, nullptr, nsDirIndexConstructor },
     949             :     { &kNS_MIMEHEADERPARAM_CID, false, nullptr, nsMIMEHeaderParamImplConstructor },
     950             : #ifdef NECKO_PROTOCOL_file
     951             :     { &kNS_FILEPROTOCOLHANDLER_CID, false, nullptr, nsFileProtocolHandlerConstructor },
     952             : #endif
     953             : #ifdef NECKO_PROTOCOL_http
     954             :     { &kNS_HTTPPROTOCOLHANDLER_CID, false, nullptr, mozilla::net::nsHttpHandlerConstructor },
     955             :     { &kNS_HTTPSPROTOCOLHANDLER_CID, false, nullptr, mozilla::net::nsHttpsHandlerConstructor },
     956             :     { &kNS_HTTPBASICAUTH_CID, false, nullptr, mozilla::net::nsHttpBasicAuthConstructor },
     957             :     { &kNS_HTTPDIGESTAUTH_CID, false, nullptr, mozilla::net::nsHttpDigestAuthConstructor },
     958             :     { &kNS_HTTPNTLMAUTH_CID, false, nullptr, mozilla::net::nsHttpNTLMAuthConstructor },
     959             :     { &kNS_HTTPAUTHMANAGER_CID, false, nullptr, mozilla::net::nsHttpAuthManagerConstructor },
     960             :     { &kNS_HTTPCHANNELAUTHPROVIDER_CID, false, nullptr, mozilla::net::nsHttpChannelAuthProviderConstructor },
     961             :     { &kNS_HTTPACTIVITYDISTRIBUTOR_CID, false, nullptr, mozilla::net::nsHttpActivityDistributorConstructor },
     962             :     { &kNS_THROTTLEQUEUE_CID, false, nullptr, mozilla::net::ThrottleQueueConstructor },
     963             :     { &kNS_BACKGROUNDCHANNELREGISTRAR_CID, false, nullptr, mozilla::net::BackgroundChannelRegistrarConstructor },
     964             : #endif // !NECKO_PROTOCOL_http
     965             : #ifdef NECKO_PROTOCOL_ftp
     966             :     { &kNS_FTPPROTOCOLHANDLER_CID, false, nullptr, nsFtpProtocolHandlerConstructor },
     967             : #endif
     968             : #ifdef NECKO_PROTOCOL_res
     969             :     { &kNS_RESPROTOCOLHANDLER_CID, false, nullptr, nsResProtocolHandlerConstructor },
     970             :     { &kNS_EXTENSIONPROTOCOLHANDLER_CID, false, nullptr, mozilla::ExtensionProtocolHandlerConstructor },
     971             :     { &kNS_SUBSTITUTINGURL_CID, false, nullptr, mozilla::SubstitutingURLConstructor },
     972             : #endif
     973             :     { &kNS_ABOUTPROTOCOLHANDLER_CID, false, nullptr, nsAboutProtocolHandlerConstructor },
     974             :     { &kNS_SAFEABOUTPROTOCOLHANDLER_CID, false, nullptr, nsSafeAboutProtocolHandlerConstructor },
     975             :     { &kNS_ABOUT_BLANK_MODULE_CID, false, nullptr, nsAboutBlank::Create },
     976             :     { &kNS_NESTEDABOUTURI_CID, false, nullptr, nsNestedAboutURIConstructor },
     977             : #ifdef NECKO_PROTOCOL_about
     978             :     { &kNS_ABOUT_CACHE_MODULE_CID, false, nullptr, nsAboutCache::Create },
     979             :     { &kNS_ABOUT_CACHE_ENTRY_MODULE_CID, false, nullptr, nsAboutCacheEntryConstructor },
     980             : #endif
     981             :     { &kNS_SOCKSSOCKETPROVIDER_CID, false, nullptr, nsSOCKSSocketProvider::CreateV5 },
     982             :     { &kNS_SOCKS4SOCKETPROVIDER_CID, false, nullptr, nsSOCKSSocketProvider::CreateV4 },
     983             :     { &kNS_UDPSOCKETPROVIDER_CID, false, nullptr, nsUDPSocketProviderConstructor },
     984             :     { &kNS_CACHESERVICE_CID, false, nullptr, nsCacheService::Create },
     985             :     { &kNS_APPLICATIONCACHESERVICE_CID, false, nullptr, nsApplicationCacheServiceConstructor },
     986             :     { &kNS_APPLICATIONCACHENAMESPACE_CID, false, nullptr, nsApplicationCacheNamespaceConstructor },
     987             :     { &kNS_APPLICATIONCACHE_CID, false, nullptr, nsApplicationCacheConstructor },
     988             : #ifdef NECKO_COOKIES
     989             :     { &kNS_COOKIEMANAGER_CID, false, nullptr, nsICookieServiceConstructor },
     990             :     { &kNS_COOKIESERVICE_CID, false, nullptr, nsICookieServiceConstructor },
     991             : #endif
     992             : #ifdef NECKO_WIFI
     993             :     { &kNS_WIFI_MONITOR_COMPONENT_CID, false, nullptr, nsWifiMonitorConstructor },
     994             : #endif
     995             : #ifdef NECKO_PROTOCOL_data
     996             :     { &kNS_DATAPROTOCOLHANDLER_CID, false, nullptr, nsDataHandler::Create },
     997             : #endif
     998             : #ifdef NECKO_PROTOCOL_device
     999             :     { &kNS_DEVICEPROTOCOLHANDLER_CID, false, nullptr, nsDeviceProtocolHandlerConstructor},
    1000             : #endif
    1001             : #ifdef NECKO_PROTOCOL_viewsource
    1002             :     { &kNS_VIEWSOURCEHANDLER_CID, false, nullptr, nsViewSourceHandlerConstructor },
    1003             : #endif
    1004             : #ifdef NECKO_PROTOCOL_wyciwyg
    1005             :     { &kNS_WYCIWYGPROTOCOLHANDLER_CID, false, nullptr, nsWyciwygProtocolHandlerConstructor },
    1006             : #endif
    1007             : #ifdef NECKO_PROTOCOL_websocket
    1008             :     { &kNS_WEBSOCKETPROTOCOLHANDLER_CID, false, nullptr,
    1009             :       mozilla::net::WebSocketChannelConstructor },
    1010             :     { &kNS_WEBSOCKETSSLPROTOCOLHANDLER_CID, false, nullptr,
    1011             :       mozilla::net::WebSocketSSLChannelConstructor },
    1012             : #endif
    1013             : #ifdef NECKO_PROTOCOL_rtsp
    1014             :     { &kNS_RTSPPROTOCOLHANDLER_CID, false, nullptr, mozilla::net::RtspHandlerConstructor },
    1015             : #endif
    1016             : #if defined(XP_WIN)
    1017             :     { &kNS_NETWORK_LINK_SERVICE_CID, false, nullptr, nsNotifyAddrListenerConstructor },
    1018             : #elif defined(MOZ_WIDGET_COCOA)
    1019             :     { &kNS_NETWORK_LINK_SERVICE_CID, false, nullptr, nsNetworkLinkServiceConstructor },
    1020             : #elif defined(MOZ_WIDGET_ANDROID)
    1021             :     { &kNS_NETWORK_LINK_SERVICE_CID, false, nullptr, nsAndroidNetworkLinkServiceConstructor },
    1022             : #elif defined(XP_LINUX)
    1023             :     { &kNS_NETWORK_LINK_SERVICE_CID, false, nullptr, nsNotifyAddrListenerConstructor },
    1024             : #endif
    1025             :     { &kNS_SERIALIZATION_HELPER_CID, false, nullptr, nsSerializationHelperConstructor },
    1026             :     { &kNS_REDIRECTCHANNELREGISTRAR_CID, false, nullptr, RedirectChannelRegistrarConstructor },
    1027             :     { &kNS_CACHE_STORAGE_SERVICE_CID, false, nullptr, CacheStorageServiceConstructor },
    1028             :     { &kNS_NSILOADCONTEXTINFOFACTORY_CID, false, nullptr, LoadContextInfoFactoryConstructor },
    1029             :     { &kNS_NETWORKPREDICTOR_CID, false, nullptr, mozilla::net::Predictor::Create },
    1030             :     { &kNS_CAPTIVEPORTAL_CID, false, nullptr, mozilla::net::CaptivePortalServiceConstructor },
    1031             :     { &kNS_REQUESTCONTEXTSERVICE_CID, false, nullptr, RequestContextServiceConstructor },
    1032             : #ifdef BUILD_NETWORK_INFO_SERVICE
    1033             :     { &kNETWORKINFOSERVICE_CID, false, nullptr, nsNetworkInfoServiceConstructor },
    1034             : #endif
    1035             :     { nullptr }
    1036             : };
    1037             : 
    1038             : static const mozilla::Module::ContractIDEntry kNeckoContracts[] = {
    1039             :     { NS_IOSERVICE_CONTRACTID, &kNS_IOSERVICE_CID },
    1040             :     { NS_NETUTIL_CONTRACTID, &kNS_IOSERVICE_CID },
    1041             :     { NS_STREAMTRANSPORTSERVICE_CONTRACTID, &kNS_STREAMTRANSPORTSERVICE_CID },
    1042             :     { NS_SOCKETTRANSPORTSERVICE_CONTRACTID, &kNS_SOCKETTRANSPORTSERVICE_CID },
    1043             :     { NS_SERVERSOCKET_CONTRACTID, &kNS_SERVERSOCKET_CID },
    1044             :     { NS_TLSSERVERSOCKET_CONTRACTID, &kNS_TLSSERVERSOCKET_CID },
    1045             :     { NS_UDPSOCKET_CONTRACTID, &kNS_UDPSOCKET_CID },
    1046             :     { NS_SOCKETPROVIDERSERVICE_CONTRACTID, &kNS_SOCKETPROVIDERSERVICE_CID },
    1047             :     { NS_DNSSERVICE_CONTRACTID, &kNS_DNSSERVICE_CID },
    1048             :     { NS_IDNSERVICE_CONTRACTID, &kNS_IDNSERVICE_CID },
    1049             :     { NS_EFFECTIVETLDSERVICE_CONTRACTID, &kNS_EFFECTIVETLDSERVICE_CID },
    1050             :     { NS_SIMPLEURI_CONTRACTID, &kNS_SIMPLEURI_CID },
    1051             :     { NS_ASYNCSTREAMCOPIER_CONTRACTID, &kNS_ASYNCSTREAMCOPIER_CID },
    1052             :     { NS_INPUTSTREAMPUMP_CONTRACTID, &kNS_INPUTSTREAMPUMP_CID },
    1053             :     { NS_INPUTSTREAMCHANNEL_CONTRACTID, &kNS_INPUTSTREAMCHANNEL_CID },
    1054             :     { NS_STREAMLOADER_CONTRACTID, &kNS_STREAMLOADER_CID },
    1055             :     { NS_INCREMENTALSTREAMLOADER_CONTRACTID, &kNS_INCREMENTALSTREAMLOADER_CID },
    1056             :     { NS_UNICHARSTREAMLOADER_CONTRACTID, &kNS_UNICHARSTREAMLOADER_CID },
    1057             :     { NS_DOWNLOADER_CONTRACTID, &kNS_DOWNLOADER_CID },
    1058             :     { NS_BACKGROUNDFILESAVEROUTPUTSTREAM_CONTRACTID, &kNS_BACKGROUNDFILESAVEROUTPUTSTREAM_CID },
    1059             :     { NS_BACKGROUNDFILESAVERSTREAMLISTENER_CONTRACTID, &kNS_BACKGROUNDFILESAVERSTREAMLISTENER_CID },
    1060             :     { NS_SYNCSTREAMLISTENER_CONTRACTID, &kNS_SYNCSTREAMLISTENER_CID },
    1061             :     { NS_REQUESTOBSERVERPROXY_CONTRACTID, &kNS_REQUESTOBSERVERPROXY_CID },
    1062             :     { NS_SIMPLESTREAMLISTENER_CONTRACTID, &kNS_SIMPLESTREAMLISTENER_CID },
    1063             :     { NS_STREAMLISTENERTEE_CONTRACTID, &kNS_STREAMLISTENERTEE_CID },
    1064             :     { NS_LOADGROUP_CONTRACTID, &kNS_LOADGROUP_CID },
    1065             :     { NS_LOCALFILEINPUTSTREAM_CONTRACTID, &kNS_LOCALFILEINPUTSTREAM_CID },
    1066             :     { NS_LOCALFILEOUTPUTSTREAM_CONTRACTID, &kNS_LOCALFILEOUTPUTSTREAM_CID },
    1067             :     { NS_ATOMICLOCALFILEOUTPUTSTREAM_CONTRACTID, &kNS_ATOMICLOCALFILEOUTPUTSTREAM_CID },
    1068             :     { NS_SAFELOCALFILEOUTPUTSTREAM_CONTRACTID, &kNS_SAFELOCALFILEOUTPUTSTREAM_CID },
    1069             :     { NS_LOCALFILESTREAM_CONTRACTID, &kNS_LOCALFILESTREAM_CID },
    1070             :     { NS_INCREMENTALDOWNLOAD_CONTRACTID, &kNS_INCREMENTALDOWNLOAD_CID },
    1071             :     { NS_STDURLPARSER_CONTRACTID, &kNS_STDURLPARSER_CID },
    1072             :     { NS_NOAUTHURLPARSER_CONTRACTID, &kNS_NOAUTHURLPARSER_CID },
    1073             :     { NS_AUTHURLPARSER_CONTRACTID, &kNS_AUTHURLPARSER_CID },
    1074             :     { NS_STANDARDURL_CONTRACTID, &kNS_STANDARDURL_CID },
    1075             : #ifdef MOZ_RUST_URLPARSE
    1076             :     { NS_RUSTURL_CONTRACTID, &kNS_RUSTURL_CID },
    1077             : #endif
    1078             :     { NS_ARRAYBUFFERINPUTSTREAM_CONTRACTID, &kNS_ARRAYBUFFERINPUTSTREAM_CID },
    1079             :     { NS_BUFFEREDINPUTSTREAM_CONTRACTID, &kNS_BUFFEREDINPUTSTREAM_CID },
    1080             :     { NS_BUFFEREDOUTPUTSTREAM_CONTRACTID, &kNS_BUFFEREDOUTPUTSTREAM_CID },
    1081             :     { NS_MIMEINPUTSTREAM_CONTRACTID, &kNS_MIMEINPUTSTREAM_CID },
    1082             :     { NS_PROTOCOLPROXYSERVICE_CONTRACTID, &kNS_PROTOCOLPROXYSERVICE_CID },
    1083             :     { NS_STREAMCONVERTERSERVICE_CONTRACTID, &kNS_STREAMCONVERTERSERVICE_CID },
    1084             : #if defined(XP_WIN)
    1085             :     { NS_NAMEDPIPESERVICE_CONTRACTID, &kNS_NAMEDPIPESERVICE_CID },
    1086             : #endif
    1087             :     { NS_DASHBOARD_CONTRACTID, &kNS_DASHBOARD_CID },
    1088             : #ifdef NECKO_PROTOCOL_ftp
    1089             :     { NS_ISTREAMCONVERTER_KEY FTP_TO_INDEX, &kNS_FTPDIRLISTINGCONVERTER_CID },
    1090             : #endif
    1091             :     { NS_ISTREAMCONVERTER_KEY INDEX_TO_HTML, &kNS_NSINDEXEDTOHTMLCONVERTER_CID },
    1092             :     { NS_DIRINDEXPARSER_CONTRACTID, &kNS_DIRINDEXPARSER_CID },
    1093             :     { NS_ISTREAMCONVERTER_KEY MULTI_MIXED_X, &kNS_MULTIMIXEDCONVERTER_CID },
    1094             :     { NS_ISTREAMCONVERTER_KEY MULTI_BYTERANGES, &kNS_MULTIMIXEDCONVERTER_CID },
    1095             :     { NS_ISTREAMCONVERTER_KEY MULTI_MIXED, &kNS_MULTIMIXEDCONVERTER_CID },
    1096             :     { NS_ISTREAMCONVERTER_KEY UNKNOWN_CONTENT, &kNS_UNKNOWNDECODER_CID },
    1097             :     { NS_GENERIC_CONTENT_SNIFFER, &kNS_UNKNOWNDECODER_CID },
    1098             :     { NS_BINARYDETECTOR_CONTRACTID, &kNS_BINARYDETECTOR_CID },
    1099             :     { NS_ISTREAMCONVERTER_KEY GZIP_TO_UNCOMPRESSED, &kNS_HTTPCOMPRESSCONVERTER_CID },
    1100             :     { NS_ISTREAMCONVERTER_KEY XGZIP_TO_UNCOMPRESSED, &kNS_HTTPCOMPRESSCONVERTER_CID },
    1101             :     { NS_ISTREAMCONVERTER_KEY BROTLI_TO_UNCOMPRESSED, &kNS_HTTPCOMPRESSCONVERTER_CID },
    1102             :     { NS_ISTREAMCONVERTER_KEY COMPRESS_TO_UNCOMPRESSED, &kNS_HTTPCOMPRESSCONVERTER_CID },
    1103             :     { NS_ISTREAMCONVERTER_KEY XCOMPRESS_TO_UNCOMPRESSED, &kNS_HTTPCOMPRESSCONVERTER_CID },
    1104             :     { NS_ISTREAMCONVERTER_KEY DEFLATE_TO_UNCOMPRESSED, &kNS_HTTPCOMPRESSCONVERTER_CID },
    1105             :     { NS_ISTREAMCONVERTER_KEY PLAIN_TO_HTML, &kNS_NSTXTTOHTMLCONVERTER_CID },
    1106             : #ifdef BUILD_BINHEX_DECODER
    1107             :     { NS_ISTREAMCONVERTER_KEY BINHEX_TO_WILD, &kNS_BINHEXDECODER_CID },
    1108             : #endif
    1109             :     { MOZ_TXTTOHTMLCONV_CONTRACTID, &kMOZITXTTOHTMLCONV_CID },
    1110             :     { "@mozilla.org/dirIndex;1", &kNS_DIRINDEX_CID },
    1111             :     { NS_MIMEHEADERPARAM_CONTRACTID, &kNS_MIMEHEADERPARAM_CID },
    1112             : #ifdef NECKO_PROTOCOL_file
    1113             :     { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "file", &kNS_FILEPROTOCOLHANDLER_CID },
    1114             : #endif
    1115             : #ifdef NECKO_PROTOCOL_http
    1116             :     { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "http", &kNS_HTTPPROTOCOLHANDLER_CID },
    1117             :     { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "https", &kNS_HTTPSPROTOCOLHANDLER_CID },
    1118             :     { NS_HTTP_AUTHENTICATOR_CONTRACTID_PREFIX "basic", &kNS_HTTPBASICAUTH_CID },
    1119             :     { NS_HTTP_AUTHENTICATOR_CONTRACTID_PREFIX "digest", &kNS_HTTPDIGESTAUTH_CID },
    1120             :     { NS_HTTP_AUTHENTICATOR_CONTRACTID_PREFIX "ntlm", &kNS_HTTPNTLMAUTH_CID },
    1121             :     { NS_HTTPAUTHMANAGER_CONTRACTID, &kNS_HTTPAUTHMANAGER_CID },
    1122             :     { NS_HTTPCHANNELAUTHPROVIDER_CONTRACTID, &kNS_HTTPCHANNELAUTHPROVIDER_CID },
    1123             :     { NS_HTTPACTIVITYDISTRIBUTOR_CONTRACTID, &kNS_HTTPACTIVITYDISTRIBUTOR_CID },
    1124             :     { NS_THROTTLEQUEUE_CONTRACTID, &kNS_THROTTLEQUEUE_CID },
    1125             :     { NS_BACKGROUNDCHANNELREGISTRAR_CONTRACTID, &kNS_BACKGROUNDCHANNELREGISTRAR_CID },
    1126             : #endif // !NECKO_PROTOCOL_http
    1127             : #ifdef NECKO_PROTOCOL_ftp
    1128             :     { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "ftp", &kNS_FTPPROTOCOLHANDLER_CID },
    1129             : #endif
    1130             : #ifdef NECKO_PROTOCOL_res
    1131             :     { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "resource", &kNS_RESPROTOCOLHANDLER_CID },
    1132             :     { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "moz-extension", &kNS_EXTENSIONPROTOCOLHANDLER_CID },
    1133             : #endif
    1134             :     { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "about", &kNS_ABOUTPROTOCOLHANDLER_CID },
    1135             :     { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "moz-safe-about", &kNS_SAFEABOUTPROTOCOLHANDLER_CID },
    1136             :     { NS_ABOUT_MODULE_CONTRACTID_PREFIX "blank", &kNS_ABOUT_BLANK_MODULE_CID },
    1137             : #ifdef NECKO_PROTOCOL_about
    1138             :     { NS_ABOUT_MODULE_CONTRACTID_PREFIX "cache", &kNS_ABOUT_CACHE_MODULE_CID },
    1139             :     { NS_ABOUT_MODULE_CONTRACTID_PREFIX "cache-entry", &kNS_ABOUT_CACHE_ENTRY_MODULE_CID },
    1140             : #endif
    1141             :     { NS_NETWORK_SOCKET_CONTRACTID_PREFIX "socks", &kNS_SOCKSSOCKETPROVIDER_CID },
    1142             :     { NS_NETWORK_SOCKET_CONTRACTID_PREFIX "socks4", &kNS_SOCKS4SOCKETPROVIDER_CID },
    1143             :     { NS_NETWORK_SOCKET_CONTRACTID_PREFIX "udp", &kNS_UDPSOCKETPROVIDER_CID },
    1144             :     { NS_CACHESERVICE_CONTRACTID, &kNS_CACHESERVICE_CID },
    1145             :     { NS_APPLICATIONCACHESERVICE_CONTRACTID, &kNS_APPLICATIONCACHESERVICE_CID },
    1146             :     { NS_APPLICATIONCACHENAMESPACE_CONTRACTID, &kNS_APPLICATIONCACHENAMESPACE_CID },
    1147             :     { NS_APPLICATIONCACHE_CONTRACTID, &kNS_APPLICATIONCACHE_CID },
    1148             : #ifdef NECKO_COOKIES
    1149             :     { NS_COOKIEMANAGER_CONTRACTID, &kNS_COOKIEMANAGER_CID },
    1150             :     { NS_COOKIESERVICE_CONTRACTID, &kNS_COOKIESERVICE_CID },
    1151             : #endif
    1152             : #ifdef NECKO_WIFI
    1153             :     { NS_WIFI_MONITOR_CONTRACTID, &kNS_WIFI_MONITOR_COMPONENT_CID },
    1154             : #endif
    1155             : #ifdef NECKO_PROTOCOL_data
    1156             :     { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "data", &kNS_DATAPROTOCOLHANDLER_CID },
    1157             : #endif
    1158             : #ifdef NECKO_PROTOCOL_device
    1159             :     { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "moz-device", &kNS_DEVICEPROTOCOLHANDLER_CID },
    1160             : #endif
    1161             : #ifdef NECKO_PROTOCOL_viewsource
    1162             :     { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "view-source", &kNS_VIEWSOURCEHANDLER_CID },
    1163             : #endif
    1164             : #ifdef NECKO_PROTOCOL_wyciwyg
    1165             :     { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "wyciwyg", &kNS_WYCIWYGPROTOCOLHANDLER_CID },
    1166             : #endif
    1167             : #ifdef NECKO_PROTOCOL_websocket
    1168             :     { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "ws", &kNS_WEBSOCKETPROTOCOLHANDLER_CID },
    1169             :     { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "wss", &kNS_WEBSOCKETSSLPROTOCOLHANDLER_CID },
    1170             : #endif
    1171             : #ifdef NECKO_PROTOCOL_rtsp
    1172             :     { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "rtsp", &kNS_RTSPPROTOCOLHANDLER_CID },
    1173             : #endif
    1174             : #if defined(XP_WIN)
    1175             :     { NS_NETWORK_LINK_SERVICE_CONTRACTID, &kNS_NETWORK_LINK_SERVICE_CID },
    1176             : #elif defined(MOZ_WIDGET_COCOA)
    1177             :     { NS_NETWORK_LINK_SERVICE_CONTRACTID, &kNS_NETWORK_LINK_SERVICE_CID },
    1178             : #elif defined(MOZ_WIDGET_ANDROID)
    1179             :     { NS_NETWORK_LINK_SERVICE_CONTRACTID, &kNS_NETWORK_LINK_SERVICE_CID },
    1180             : #elif defined(XP_LINUX)
    1181             :     { NS_NETWORK_LINK_SERVICE_CONTRACTID, &kNS_NETWORK_LINK_SERVICE_CID },
    1182             : #endif
    1183             :     { NS_SERIALIZATION_HELPER_CONTRACTID, &kNS_SERIALIZATION_HELPER_CID },
    1184             :     { NS_REDIRECTCHANNELREGISTRAR_CONTRACTID, &kNS_REDIRECTCHANNELREGISTRAR_CID },
    1185             :     { NS_CACHE_STORAGE_SERVICE_CONTRACTID, &kNS_CACHE_STORAGE_SERVICE_CID },
    1186             :     { NS_CACHE_STORAGE_SERVICE_CONTRACTID2, &kNS_CACHE_STORAGE_SERVICE_CID },
    1187             :     { NS_NSILOADCONTEXTINFOFACTORY_CONTRACTID, &kNS_NSILOADCONTEXTINFOFACTORY_CID },
    1188             :     { NS_NETWORKPREDICTOR_CONTRACTID, &kNS_NETWORKPREDICTOR_CID },
    1189             :     { NS_CAPTIVEPORTAL_CONTRACTID, &kNS_CAPTIVEPORTAL_CID },
    1190             :     { NS_REQUESTCONTEXTSERVICE_CONTRACTID, &kNS_REQUESTCONTEXTSERVICE_CID },
    1191             : #ifdef BUILD_NETWORK_INFO_SERVICE
    1192             :     { NETWORKINFOSERVICE_CONTRACT_ID, &kNETWORKINFOSERVICE_CID },
    1193             : #endif
    1194             :     { nullptr }
    1195             : };
    1196             : 
    1197             : static const mozilla::Module kNeckoModule = {
    1198             :     mozilla::Module::kVersion,
    1199             :     kNeckoCIDs,
    1200             :     kNeckoContracts,
    1201             :     kNeckoCategories,
    1202             :     nullptr,
    1203             :     nsNetStartup,
    1204             :     nsNetShutdown
    1205             : };
    1206             : 
    1207             : NSMODULE_DEFN(necko) = &kNeckoModule;

Generated by: LCOV version 1.13