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;
|