gecko-dev/netwerk/build/components.conf

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

809 строки
31 KiB
Plaintext
Исходник Обычный вид История

# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
Headers = [
'/netwerk/build/nsNetModule.h'
]
InitFunc = 'nsNetStartup'
UnloadFunc = 'nsNetShutdown'
Categories = {
'@mozilla.org/streamconv;1': {
'?from=application/http-index-format&to=text/html': ('', ProcessSelector.ALLOW_IN_SOCKET_PROCESS),
'?from=multipart/x-mixed-replace&to=*/*': ('', ProcessSelector.ALLOW_IN_SOCKET_PROCESS),
'?from=multipart/mixed&to=*/*': ('', ProcessSelector.ALLOW_IN_SOCKET_PROCESS),
'?from=multipart/byteranges&to=*/*': ('', ProcessSelector.ALLOW_IN_SOCKET_PROCESS),
'?from=application/x-unknown-content-type&to=*/*': ('', ProcessSelector.ALLOW_IN_SOCKET_PROCESS),
'?from=gzip&to=uncompressed': ('', ProcessSelector.ALLOW_IN_SOCKET_PROCESS),
'?from=x-gzip&to=uncompressed': ('', ProcessSelector.ALLOW_IN_SOCKET_PROCESS),
'?from=br&to=uncompressed': ('', ProcessSelector.ALLOW_IN_SOCKET_PROCESS),
'?from=compress&to=uncompressed': ('', ProcessSelector.ALLOW_IN_SOCKET_PROCESS),
'?from=x-compress&to=uncompressed': ('', ProcessSelector.ALLOW_IN_SOCKET_PROCESS),
'?from=deflate&to=uncompressed': ('', ProcessSelector.ALLOW_IN_SOCKET_PROCESS),
},
}
Classes = [
{
'cid': '{3014dde6-aa1c-41db-87d0-48764a3710f6}',
'contract_ids': ['@mozilla.org/io/arraybuffer-input-stream;1'],
'type': 'ArrayBufferInputStream',
'headers': ['/netwerk/base/ArrayBufferInputStream.h'],
},
{
'js_name': 'loadContextInfo',
'cid': '{62d4b190-3642-4450-b019-d1c1fba56025}',
'contract_ids': ['@mozilla.org/load-context-info-factory;1'],
'interfaces': ['nsILoadContextInfoFactory'],
'type': 'mozilla::net::LoadContextInfoFactory',
'headers': ['mozilla/LoadContextInfo.h'],
},
{
Bug 1686616 - register all Services.py services with components.conf. r=kmag,necko-reviewers,valentin These services had their name added to components.conf: * GfxInfo * ThirdPartyUtil * History * HttpActivityDistributor * UUIDGenerator * ServiceWorkerManager * PermissionManager These services were added to componenets.conf under a different name: * DirectoryService => Directory * IOService => IO * StringBundleService => StringBundle * CacheStorageService => CacheStorage * StreamTransportService => StreamTransport * SocketTransportService => SocketTransport These services weren't migrated to components.conf because only Rust code uses them: * RemoteAgent * XULRuntime * PrefService These services weren't migrated to components.conf because they're unused: * ToolkitChromeRegistry (used as ChromeRegistry) * XULChromeRegistry (used as ChromeRegistry) * Bits (completely unused) These services were already available in components.conf but are still used by rust code: * URIFixup These services weren't migrated because they will be handled in subsequent patchsets: * ObserverService For the record, the following Services are being used by Rust code and must remain until a Rust version of Components.h is written: * RemoteAgent * XULRuntime * PrefService * URIFixup * ObserverService * DirectoryService * ThirdPartyUtil Also the cocoa GfxInfo service was changed to use components.conf instead of registering it at runtime, as all the other widgets were already doing it this way. Differential Revision: https://phabricator.services.mozilla.com/D105521
2021-02-18 16:26:28 +03:00
'name': 'CacheStorage',
'js_name': 'cache2',
'cid': '{ea70b098-5014-4e21-aee1-75e6b2c4b8e0}',
'contract_ids': [
'@mozilla.org/netwerk/cache-storage-service;1',
'@mozilla.org/network/cache-storage-service;1',
],
'interfaces': ['nsICacheStorageService'],
'singleton': True,
'type': 'mozilla::net::CacheStorageService',
'headers': ['CacheStorageService.h'],
},
{
'cid': '{e746a8b1-c97a-4fc5-baa4-66607521bd08}',
'contract_ids': ['@mozilla.org/network/async-stream-copier;1'],
'type': 'nsAsyncStreamCopier',
'headers': ['/netwerk/base/nsAsyncStreamCopier.h'],
},
{
'cid': '{6eae857e-4ba9-11e3-9b39-b4036188709b}',
'contract_ids': ['@mozilla.org/network/atomic-file-output-stream;1'],
'type': 'nsAtomicFileOutputStream',
'headers': ['nsFileStreams.h'],
},
{
'cid': '{62147d1e-ef6a-40e8-aaf8-d039f5caaa81}',
'contract_ids': ['@mozilla.org/network/background-file-saver;1?mode=outputstream'],
'type': 'mozilla::net::BackgroundFileSaverOutputStream',
'headers': ['/netwerk/base/BackgroundFileSaver.h'],
'init_method': 'Init',
},
{
'cid': '{208de7fc-a781-4031-bbae-cc0de539f61a}',
'contract_ids': ['@mozilla.org/network/background-file-saver;1?mode=streamlistener'],
'type': 'mozilla::net::BackgroundFileSaverStreamListener',
'headers': ['/netwerk/base/BackgroundFileSaver.h'],
'init_method': 'Init',
},
{
'cid': '{a2027ec6-ba0d-4c72-805d-148233f5f33c}',
'contract_ids': ['@mozilla.org/network/binary-detector;1'],
'legacy_constructor': 'CreateNewBinaryDetectorFactory',
'categories': {'net-content-sniffers': 'Binary Detector'}
},
{
'cid': '{9226888e-da08-11d3-8cda-0060b0fc14a3}',
'contract_ids': ['@mozilla.org/network/buffered-input-stream;1'],
'legacy_constructor': 'nsBufferedInputStream::Create',
'headers': ['/netwerk/base/nsBufferedStreams.h'],
},
{
'cid': '{9868b4ce-da08-11d3-8cda-0060b0fc14a3}',
'contract_ids': ['@mozilla.org/network/buffered-output-stream;1'],
'legacy_constructor': 'nsBufferedOutputStream::Create',
'headers': ['/netwerk/base/nsBufferedStreams.h'],
},
{
'cid': '{bdbe0555-fc3d-4f7b-9205-c309ceb2d641}',
'contract_ids': ['@mozilla.org/network/captive-portal-service;1'],
'singleton': True,
'type': 'nsICaptivePortalService',
'constructor': 'mozilla::net::CaptivePortalService::GetSingleton',
'headers': ['mozilla/net/CaptivePortalService.h'],
},
{
'cid': '{c79eb3c6-091a-45a6-8544-5a8d1ab79537}',
'contract_ids': ['@mozilla.org/network/dashboard;1'],
'type': 'mozilla::net::Dashboard',
'headers': ['mozilla/net/Dashboard.h'],
},
{
'name': 'DNS',
'js_name': 'dns',
'cid': '{b0ff4572-dae4-4bef-a092-83c1b88f6be9}',
'contract_ids': ['@mozilla.org/network/dns-service;1'],
'interfaces': ['nsIDNSService'],
'singleton': True,
'type': 'nsIDNSService',
'constructor': 'nsDNSService::GetXPCOMSingleton',
'headers': ['/netwerk/dns/nsDNSService2.h'],
'processes': ProcessSelector.ALLOW_IN_SOCKET_PROCESS,
},
{
'cid': '{4ffae79e-57bd-4d7a-a0c9-0045a17b3615}',
'contract_ids': ['@mozilla.org/network/native-dns-override;1'],
'singleton': True,
'type': 'nsINativeDNSResolverOverride',
'constructor': 'mozilla::net::NativeDNSResolverOverride::GetSingleton',
'headers': ['/netwerk/dns/GetAddrInfo.h'],
'processes': ProcessSelector.ALLOW_IN_SOCKET_PROCESS,
},
{
'cid': '{510a86bb-6019-4ed1-bb4f-965cffd23ece}',
'contract_ids': ['@mozilla.org/network/downloader;1'],
'type': 'nsDownloader',
'headers': ['/netwerk/base/nsDownloader.h'],
},
{
'js_name': 'eTLD',
'cid': '{cb9abbae-66b6-4609-8594-5c4ff300888e}',
'contract_ids': ['@mozilla.org/network/effective-tld-service;1'],
'interfaces': ['nsIEffectiveTLDService'],
'singleton': True,
'type': 'nsEffectiveTLDService',
'headers': ['/netwerk/dns/nsEffectiveTLDService.h'],
'init_method': 'Init',
},
{
'cid': '{be9a53ae-c7e9-11d3-8cda-0060b0fc14a3}',
'contract_ids': ['@mozilla.org/network/file-input-stream;1'],
'legacy_constructor': 'nsFileInputStream::Create',
'headers': ['nsFileStreams.h'],
},
{
'cid': '{c272fee0-c7e9-11d3-8cda-0060b0fc14a3}',
'contract_ids': ['@mozilla.org/network/file-output-stream;1'],
'legacy_constructor': 'nsFileOutputStream::Create',
'headers': ['nsFileStreams.h'],
},
{
'cid': '{648705e9-757a-4d4b-a5bF-0248e512c309}',
'contract_ids': ['@mozilla.org/network/file-random-access-stream;1'],
'legacy_constructor': 'nsFileRandomAccessStream::Create',
'headers': ['nsFileStreams.h'],
},
{
Bug 1686616 - register all Services.py services with components.conf. r=kmag,necko-reviewers,valentin These services had their name added to components.conf: * GfxInfo * ThirdPartyUtil * History * HttpActivityDistributor * UUIDGenerator * ServiceWorkerManager * PermissionManager These services were added to componenets.conf under a different name: * DirectoryService => Directory * IOService => IO * StringBundleService => StringBundle * CacheStorageService => CacheStorage * StreamTransportService => StreamTransport * SocketTransportService => SocketTransport These services weren't migrated to components.conf because only Rust code uses them: * RemoteAgent * XULRuntime * PrefService These services weren't migrated to components.conf because they're unused: * ToolkitChromeRegistry (used as ChromeRegistry) * XULChromeRegistry (used as ChromeRegistry) * Bits (completely unused) These services were already available in components.conf but are still used by rust code: * URIFixup These services weren't migrated because they will be handled in subsequent patchsets: * ObserverService For the record, the following Services are being used by Rust code and must remain until a Rust version of Components.h is written: * RemoteAgent * XULRuntime * PrefService * URIFixup * ObserverService * DirectoryService * ThirdPartyUtil Also the cocoa GfxInfo service was changed to use components.conf instead of registering it at runtime, as all the other widgets were already doing it this way. Differential Revision: https://phabricator.services.mozilla.com/D105521
2021-02-18 16:26:28 +03:00
'name': 'HttpActivityDistributor',
'cid': '{15629ada-a41c-4a09-961f-6553cd60b1a2}',
'contract_ids': ['@mozilla.org/network/http-activity-distributor;1'],
'type': 'mozilla::net::nsHttpActivityDistributor',
'headers': ['/netwerk/protocol/http/nsHttpActivityDistributor.h'],
'processes': ProcessSelector.ALLOW_IN_SOCKET_PROCESS,
},
{
'cid': '{36b63ef3-e0fa-4c49-9fd4-e065e85568f4}',
'contract_ids': ['@mozilla.org/network/http-auth-manager;1'],
'type': 'mozilla::net::nsHttpAuthManager',
'headers': ['/netwerk/protocol/http/nsHttpAuthManager.h'],
'init_method': 'Init',
},
{
'cid': '{62b778a6-bce3-456b-8c31-2865fbb68c91}',
'contract_ids': ['@mozilla.org/network/idn-service;1'],
'type': 'nsIDNService',
'headers': ['/netwerk/dns/nsIDNService.h'],
'init_method': 'Init',
'processes': ProcessSelector.ALLOW_IN_SOCKET_PROCESS,
},
{
'cid': '{a62af1ba-79b3-4896-8aaf-b148bfce4280}',
'contract_ids': ['@mozilla.org/network/incremental-download;1'],
'legacy_constructor': 'net_NewIncrementalDownload',
},
{
'cid': '{5d6352a3-b9c3-4fa3-87aa-b2a3c6e5a501}',
'contract_ids': ['@mozilla.org/network/incremental-stream-loader;1'],
'legacy_constructor': 'nsIncrementalStreamLoader::Create',
'headers': ['/netwerk/base/nsIncrementalStreamLoader.h'],
},
{
'cid': '{6ddb050c-0d04-11d4-986e-00c04fa0cf4a}',
'contract_ids': ['@mozilla.org/network/input-stream-channel;1'],
'type': 'mozilla::net::nsInputStreamChannel',
'headers': ['/netwerk/base/nsInputStreamChannel.h'],
},
{
'cid': '{ccd0e960-7947-4635-b70e-4c661b63d675}',
'contract_ids': ['@mozilla.org/network/input-stream-pump;1'],
'type': 'nsInputStreamPump',
'headers': ['nsInputStreamPump.h'],
},
{
Bug 1686616 - register all Services.py services with components.conf. r=kmag,necko-reviewers,valentin These services had their name added to components.conf: * GfxInfo * ThirdPartyUtil * History * HttpActivityDistributor * UUIDGenerator * ServiceWorkerManager * PermissionManager These services were added to componenets.conf under a different name: * DirectoryService => Directory * IOService => IO * StringBundleService => StringBundle * CacheStorageService => CacheStorage * StreamTransportService => StreamTransport * SocketTransportService => SocketTransport These services weren't migrated to components.conf because only Rust code uses them: * RemoteAgent * XULRuntime * PrefService These services weren't migrated to components.conf because they're unused: * ToolkitChromeRegistry (used as ChromeRegistry) * XULChromeRegistry (used as ChromeRegistry) * Bits (completely unused) These services were already available in components.conf but are still used by rust code: * URIFixup These services weren't migrated because they will be handled in subsequent patchsets: * ObserverService For the record, the following Services are being used by Rust code and must remain until a Rust version of Components.h is written: * RemoteAgent * XULRuntime * PrefService * URIFixup * ObserverService * DirectoryService * ThirdPartyUtil Also the cocoa GfxInfo service was changed to use components.conf instead of registering it at runtime, as all the other widgets were already doing it this way. Differential Revision: https://phabricator.services.mozilla.com/D105521
2021-02-18 16:26:28 +03:00
'name': 'IO',
'js_name': 'io',
'cid': '{9ac9e770-18bc-11d3-9337-00104ba0fd40}',
'contract_ids': [
'@mozilla.org/network/io-service;1',
'@mozilla.org/network/util;1',
],
'interfaces': ['nsIIOService', 'nsISpeculativeConnect', 'nsINetUtil'],
'singleton': True,
'type': 'mozilla::net::nsIOService',
'headers': ['/netwerk/base/nsIOService.h'],
'constructor': 'mozilla::net::nsIOService::GetInstance',
'processes': ProcessSelector.ALLOW_IN_SOCKET_PROCESS,
},
{
'cid': '{e1c61582-2a84-11d3-8cce-0060b0fc14a3}',
'contract_ids': ['@mozilla.org/network/load-group;1'],
'legacy_constructor': 'nsLoadGroupConstructor',
},
{
'cid': '{1f4dbcf7-245c-4c8c-943d-8a1da0495e8a}',
'contract_ids': ['@mozilla.org/network/mime-hdrparam;1'],
'type': 'nsMIMEHeaderParamImpl',
'headers': ['/netwerk/mime/nsMIMEHeaderParamImpl.h'],
},
{
'cid': '{58a1c31c-1dd2-11b2-a3f6-d36949d48268}',
'contract_ids': ['@mozilla.org/network/mime-input-stream;1'],
'legacy_constructor': 'nsMIMEInputStreamConstructor',
'headers': ['nsMIMEInputStream.h'],
},
{
'cid': '{2693457e-3ba5-4455-991f-5350946adb12}',
'contract_ids': ['@mozilla.org/network/network-connectivity-service;1'],
'singleton': True,
'type': 'nsINetworkConnectivityService',
'constructor': 'mozilla::net::NetworkConnectivityService::GetSingleton',
'headers': ['mozilla/net/NetworkConnectivityService.h'],
},
{
'cid': '{969adfdf-7221-4419-aecf-05f8faf00c9b}',
'contract_ids': ['@mozilla.org/network/predictor;1'],
'singleton': True,
'legacy_constructor': 'mozilla::net::Predictor::Create',
'headers': ['mozilla/net/Predictor.h'],
},
{
'cid': '{e9b301c0-e0e4-11d3-a1a8-0050041caf44}',
'contract_ids': ['@mozilla.org/network/protocol-proxy-service;1'],
'singleton': True,
'type': 'mozilla::net::nsProtocolProxyService',
'headers': ['/netwerk/base/nsProtocolProxyService.h'],
'init_method': 'Init',
},
{
'cid': '{3decd6c8-30ef-11d3-8cd0-0060b0fc14a3}',
'contract_ids': ['@mozilla.org/network/protocol/about;1?what=blank'],
'legacy_constructor': 'nsAboutBlank::Create',
'headers': ['/netwerk/protocol/about/nsAboutBlank.h'],
},
{
'cid': '{9158c470-86e4-11d4-9be2-00e09872a416}',
'contract_ids': ['@mozilla.org/network/protocol/about;1?what=cache'],
'legacy_constructor': 'nsAboutCache::Create',
'headers': ['/netwerk/protocol/about/nsAboutCache.h'],
},
{
'cid': '{7fa5237d-b0eb-438f-9e50-ca0166e63788}',
'contract_ids': ['@mozilla.org/network/protocol/about;1?what=cache-entry'],
'type': 'nsAboutCacheEntry',
'headers': ['/netwerk/protocol/about/nsAboutCacheEntry.h'],
},
{
'cid': '{9e3b6c90-2f75-11d3-8cd0-0060b0fc14a3}',
'contract_ids': ['@mozilla.org/network/protocol;1?name=about'],
'singleton': True,
'type': 'mozilla::net::nsAboutProtocolHandler',
'headers': ['/netwerk/protocol/about/nsAboutProtocolHandler.h'],
'protocol_config': {
'scheme': 'about',
'flags': [
'URI_NORELATIVE',
'URI_NOAUTH',
'URI_DANGEROUS_TO_LOAD',
'URI_SCHEME_NOT_SELF_LINKABLE',
],
'has_dynamic_flags': True,
},
},
{
'cid': '{b6ed3030-6183-11d3-a178-0050041caf44}',
'contract_ids': ['@mozilla.org/network/protocol;1?name=data'],
'singleton': True,
'legacy_constructor': 'nsDataHandler::Create',
'headers': ['/netwerk/protocol/data/nsDataHandler.h'],
'protocol_config': {
'scheme': 'data',
'flags': [
'URI_NORELATIVE',
'URI_NOAUTH',
'URI_INHERITS_SECURITY_CONTEXT',
'URI_LOADABLE_BY_ANYONE',
'URI_NON_PERSISTABLE',
'URI_IS_LOCAL_RESOURCE',
'URI_SYNC_LOAD_IS_OK',
],
},
},
{
'cid': '{fbc81170-1f69-11d3-9344-00104ba0fd40}',
'contract_ids': ['@mozilla.org/network/protocol;1?name=file'],
'singleton': True,
'type': 'nsFileProtocolHandler',
'headers': ['mozilla/net/nsFileProtocolHandler.h'],
'init_method': 'Init',
'protocol_config': {
'scheme': 'file',
'flags': [
'URI_NOAUTH',
'URI_IS_LOCAL_FILE',
'URI_IS_LOCAL_RESOURCE',
'URI_IS_POTENTIALLY_TRUSTWORTHY',
],
},
},
{
'cid': '{4f47e42e-4d23-4dd3-bfda-eb29255e9ea3}',
'contract_ids': ['@mozilla.org/network/protocol;1?name=http'],
'singleton': True,
'type': 'mozilla::net::nsHttpHandler',
'processes': ProcessSelector.ALLOW_IN_SOCKET_PROCESS,
'protocol_config': {
'scheme': 'http',
'flags': [
'URI_STD',
'ALLOWS_PROXY',
'ALLOWS_PROXY_HTTP',
'URI_LOADABLE_BY_ANYONE',
'URI_HAS_WEB_EXPOSED_ORIGIN',
],
'default_port': 80,
},
},
{
'cid': '{dccbe7e4-7750-466b-a557-5ea36c8ff24e}',
'contract_ids': ['@mozilla.org/network/protocol;1?name=https'],
'singleton': True,
'type': 'mozilla::net::nsHttpsHandler',
'processes': ProcessSelector.ALLOW_IN_SOCKET_PROCESS,
'protocol_config': {
'scheme': 'https',
'flags': [
'URI_STD',
'ALLOWS_PROXY',
'ALLOWS_PROXY_HTTP',
'URI_LOADABLE_BY_ANYONE',
'URI_IS_POTENTIALLY_TRUSTWORTHY',
'URI_HAS_WEB_EXPOSED_ORIGIN',
],
'default_port': 443,
},
},
{
'cid': '{aea16cd0-f020-4138-b068-0716c4a15b5a}',
'contract_ids': ['@mozilla.org/network/protocol;1?name=moz-extension'],
'singleton': True,
'type': 'mozilla::net::ExtensionProtocolHandler',
'headers': ['mozilla/net/ExtensionProtocolHandler.h'],
'constructor': 'mozilla::net::ExtensionProtocolHandler::GetSingleton',
'protocol_config': {
'scheme': 'moz-extension',
'flags': [
'URI_STD',
'URI_IS_LOCAL_RESOURCE',
'URI_IS_POTENTIALLY_TRUSTWORTHY',
'URI_HAS_WEB_EXPOSED_ORIGIN',
],
'has_dynamic_flags': True,
},
},
{
'cid': '{450a2b55-620a-44b3-9f67-839b3b0c329c}',
'contract_ids': ['@mozilla.org/network/protocol;1?name=moz-page-thumb'],
'singleton': True,
'type': 'mozilla::net::PageThumbProtocolHandler',
'headers': ['mozilla/net/PageThumbProtocolHandler.h'],
'constructor': 'mozilla::net::PageThumbProtocolHandler::GetSingleton',
'protocol_config': {
'scheme': 'moz-page-thumb',
'flags': [
'URI_STD',
'URI_IS_UI_RESOURCE',
'URI_IS_LOCAL_RESOURCE',
'URI_NORELATIVE',
'URI_NOAUTH',
],
},
},
{
'cid': '{1423e739-782c-4081-b5d8-fe6fba68c0ef}',
'contract_ids': ['@mozilla.org/network/protocol;1?name=moz-safe-about'],
'singleton': True,
'type': 'mozilla::net::nsSafeAboutProtocolHandler',
'headers': ['/netwerk/protocol/about/nsAboutProtocolHandler.h'],
'protocol_config': {
'scheme': 'moz-safe-about',
'flags': [
'URI_NORELATIVE',
'URI_NOAUTH',
'URI_LOADABLE_BY_ANYONE',
'URI_IS_POTENTIALLY_TRUSTWORTHY',
],
},
},
{
'cid': '{e64f152a-9f07-11d3-8cda-0060b0fc14a3}',
'contract_ids': ['@mozilla.org/network/protocol;1?name=resource'],
'singleton': True,
'type': 'nsResProtocolHandler',
'headers': ['/netwerk/protocol/res/nsResProtocolHandler.h'],
'constructor': 'nsResProtocolHandler::GetSingleton',
'protocol_config': {
'scheme': 'resource',
'flags': [
'URI_STD',
'URI_IS_UI_RESOURCE',
'URI_IS_LOCAL_RESOURCE',
'URI_IS_POTENTIALLY_TRUSTWORTHY',
'URI_HAS_WEB_EXPOSED_ORIGIN',
],
},
},
{
'cid': '{9c7ec5d1-23f9-11d5-aea8-8fcc0793e97f}',
'contract_ids': ['@mozilla.org/network/protocol;1?name=view-source'],
'singleton': True,
'type': 'mozilla::net::nsViewSourceHandler',
'headers': ['/netwerk/protocol/viewsource/nsViewSourceHandler.h'],
'protocol_config': {
'scheme': 'view-source',
'flags': [
'URI_NORELATIVE',
'URI_NOAUTH',
'URI_DANGEROUS_TO_LOAD',
'URI_NON_PERSISTABLE',
],
'has_dynamic_flags': True,
},
},
{
'cid': '{dc01db59-a513-4c90-824b-085cce06c0aa}',
'contract_ids': ['@mozilla.org/network/protocol;1?name=ws'],
'singleton': True,
'legacy_constructor': 'mozilla::net::WebSocketChannelConstructor',
'protocol_config': {
'scheme': 'ws',
'flags': [
'URI_NORELATIVE',
'URI_NON_PERSISTABLE',
'ALLOWS_PROXY',
'ALLOWS_PROXY_HTTP',
'URI_DOES_NOT_RETURN_DATA',
'URI_DANGEROUS_TO_LOAD',
'URI_HAS_WEB_EXPOSED_ORIGIN',
],
'default_port': 80,
},
},
{
'cid': '{dc01dbbb-a5bb-4cbb-82bb-085cce06c0bb}',
'contract_ids': ['@mozilla.org/network/protocol;1?name=wss'],
'singleton': True,
'legacy_constructor': 'mozilla::net::WebSocketSSLChannelConstructor',
'protocol_config': {
'scheme': 'wss',
'flags': [
'URI_NORELATIVE',
'URI_NON_PERSISTABLE',
'ALLOWS_PROXY',
'ALLOWS_PROXY_HTTP',
'URI_DOES_NOT_RETURN_DATA',
'URI_DANGEROUS_TO_LOAD',
'URI_IS_POTENTIALLY_TRUSTWORTHY',
'URI_HAS_WEB_EXPOSED_ORIGIN',
],
'default_port': 443,
},
},
{
'cid': '{a181af0d-68b8-4308-94db-d4f859058215}',
'contract_ids': ['@mozilla.org/network/safe-file-output-stream;1'],
'type': 'nsSafeFileOutputStream',
'headers': ['nsFileStreams.h'],
},
{
'cid': '{d6ef593d-a429-4b14-a887-d9e2f765d9ed}',
'contract_ids': ['@mozilla.org/network/serialization-helper;1'],
'type': 'nsSerializationHelper',
'headers': ['nsSerializationHelper.h'],
},
{
'cid': '{2ec62893-3b35-48fa-ab1d-5e68a9f45f08}',
'contract_ids': ['@mozilla.org/network/server-socket;1'],
'type': 'mozilla::net::nsServerSocket',
'headers': ['/netwerk/base/nsServerSocket.h'],
},
{
'cid': '{fb8cbf4e-4701-4ba1-b1d6-5388e041fb67}',
'contract_ids': ['@mozilla.org/network/simple-stream-listener;1'],
'type': 'mozilla::net::nsSimpleStreamListener',
'headers': ['/netwerk/base/nsSimpleStreamListener.h'],
},
{
'cid': '{2be14592-28d4-4a83-8fe9-08e778849f6e}',
'contract_ids': ['@mozilla.org/network/simple-uri-mutator;1'],
'type': 'mozilla::net::nsSimpleURI::Mutator',
'headers': ['nsSimpleURI.h'],
'processes': ProcessSelector.ALLOW_IN_SOCKET_PROCESS,
},
{
'cid': '{04445aa0-fd27-4c99-bd41-6be6318ae92c}',
'contract_ids': ['@mozilla.org/network/default-uri-mutator;1'],
'type': 'mozilla::net::DefaultURI::Mutator',
'headers': ['/netwerk/base/DefaultURI.h'],
'processes': ProcessSelector.ALLOW_IN_SOCKET_PROCESS,
},
{
Bug 1686616 - register all Services.py services with components.conf. r=kmag,necko-reviewers,valentin These services had their name added to components.conf: * GfxInfo * ThirdPartyUtil * History * HttpActivityDistributor * UUIDGenerator * ServiceWorkerManager * PermissionManager These services were added to componenets.conf under a different name: * DirectoryService => Directory * IOService => IO * StringBundleService => StringBundle * CacheStorageService => CacheStorage * StreamTransportService => StreamTransport * SocketTransportService => SocketTransport These services weren't migrated to components.conf because only Rust code uses them: * RemoteAgent * XULRuntime * PrefService These services weren't migrated to components.conf because they're unused: * ToolkitChromeRegistry (used as ChromeRegistry) * XULChromeRegistry (used as ChromeRegistry) * Bits (completely unused) These services were already available in components.conf but are still used by rust code: * URIFixup These services weren't migrated because they will be handled in subsequent patchsets: * ObserverService For the record, the following Services are being used by Rust code and must remain until a Rust version of Components.h is written: * RemoteAgent * XULRuntime * PrefService * URIFixup * ObserverService * DirectoryService * ThirdPartyUtil Also the cocoa GfxInfo service was changed to use components.conf instead of registering it at runtime, as all the other widgets were already doing it this way. Differential Revision: https://phabricator.services.mozilla.com/D105521
2021-02-18 16:26:28 +03:00
'name': 'SocketTransport',
'cid': '{ad56b25f-e6bb-4db3-9f7b-5b7db33fd2b1}',
'contract_ids': ['@mozilla.org/network/socket-transport-service;1'],
'singleton': True,
'type': 'mozilla::net::nsSocketTransportService',
'headers': ['/netwerk/base/nsSocketTransportService2.h'],
'init_method': 'Init',
'processes': ProcessSelector.ALLOW_IN_SOCKET_PROCESS,
},
{
'cid': '{ce7d7da0-fb28-44a3-8c7b-000c165918f4}',
'contract_ids': ['@mozilla.org/network/standard-url-mutator;1'],
'type': 'mozilla::net::nsStandardURL::Mutator',
'headers': ['/netwerk/base/nsStandardURL.h'],
'processes': ProcessSelector.ALLOW_IN_SOCKET_PROCESS,
},
{
'cid': '{831f8f13-7aa8-485f-b02e-77c881cc5773}',
'contract_ids': ['@mozilla.org/network/stream-listener-tee;1'],
'type': 'mozilla::net::nsStreamListenerTee',
'headers': ['/netwerk/base/nsStreamListenerTee.h'],
},
{
'cid': '{9879908a-2972-40c0-890b-a91dd7dfb954}',
'contract_ids': ['@mozilla.org/network/stream-loader;1'],
'legacy_constructor': 'mozilla::net::nsStreamLoader::Create',
'headers': ['/netwerk/base/nsStreamLoader.h'],
'processes': ProcessSelector.ALLOW_IN_SOCKET_PROCESS,
},
{
Bug 1686616 - register all Services.py services with components.conf. r=kmag,necko-reviewers,valentin These services had their name added to components.conf: * GfxInfo * ThirdPartyUtil * History * HttpActivityDistributor * UUIDGenerator * ServiceWorkerManager * PermissionManager These services were added to componenets.conf under a different name: * DirectoryService => Directory * IOService => IO * StringBundleService => StringBundle * CacheStorageService => CacheStorage * StreamTransportService => StreamTransport * SocketTransportService => SocketTransport These services weren't migrated to components.conf because only Rust code uses them: * RemoteAgent * XULRuntime * PrefService These services weren't migrated to components.conf because they're unused: * ToolkitChromeRegistry (used as ChromeRegistry) * XULChromeRegistry (used as ChromeRegistry) * Bits (completely unused) These services were already available in components.conf but are still used by rust code: * URIFixup These services weren't migrated because they will be handled in subsequent patchsets: * ObserverService For the record, the following Services are being used by Rust code and must remain until a Rust version of Components.h is written: * RemoteAgent * XULRuntime * PrefService * URIFixup * ObserverService * DirectoryService * ThirdPartyUtil Also the cocoa GfxInfo service was changed to use components.conf instead of registering it at runtime, as all the other widgets were already doing it this way. Differential Revision: https://phabricator.services.mozilla.com/D105521
2021-02-18 16:26:28 +03:00
'name': 'StreamTransport',
'cid': '{0885d4f8-f7b8-4cda-902e-94ba38bc256e}',
'contract_ids': ['@mozilla.org/network/stream-transport-service;1'],
'type': 'mozilla::net::nsStreamTransportService',
'headers': ['/netwerk/base/nsStreamTransportService.h'],
'init_method': 'Init',
},
{
'cid': '{4c39159c-cd90-4dd3-97a7-06af5e6d84c4}',
'contract_ids': ['@mozilla.org/network/throttlequeue;1'],
'type': 'nsIInputChannelThrottleQueue',
'constructor': 'mozilla::net::ThrottleQueue::Create',
'headers': ['/netwerk/base/ThrottleQueue.h'],
},
{
'cid': '{1813cbb4-c98e-4622-8c7d-839167f3f272}',
'contract_ids': ['@mozilla.org/network/tls-server-socket;1'],
'type': 'mozilla::net::TLSServerSocket',
'headers': ['/netwerk/base/TLSServerSocket.h'],
},
{
'cid': '{c9f74572-7b8e-4fec-bb4a-03c0d3021bd6}',
'contract_ids': ['@mozilla.org/network/udp-socket;1'],
'type': 'mozilla::net::nsUDPSocket',
'headers': ['/netwerk/base/nsUDPSocket.h'],
'processes': ProcessSelector.ALLOW_IN_SOCKET_PROCESS,
},
{
'cid': '{ff41913b-546a-4bff-9201-dc9b2c032eba}',
'contract_ids': ['@mozilla.org/network/url-parser;1?auth=maybe'],
'type': 'nsStdURLParser',
'headers': ['nsURLParsers.h'],
'processes': ProcessSelector.ALLOW_IN_SOCKET_PROCESS,
},
{
'cid': '{78804a84-8173-42b6-bb94-789f0816a810}',
'contract_ids': ['@mozilla.org/network/url-parser;1?auth=no'],
'type': 'nsNoAuthURLParser',
'headers': ['nsURLParsers.h'],
'processes': ProcessSelector.ALLOW_IN_SOCKET_PROCESS,
},
{
'cid': '{275d800e-3f60-4896-adb7-d7f390ce0e42}',
'contract_ids': ['@mozilla.org/network/url-parser;1?auth=yes'],
'type': 'nsAuthURLParser',
'headers': ['nsURLParsers.h'],
'processes': ProcessSelector.ALLOW_IN_SOCKET_PROCESS,
},
{
'cid': '{892ffeb0-3f80-11d3-a16c-0050041caf44}',
'contract_ids': ['@mozilla.org/streamConverters;1'],
'legacy_constructor': 'CreateNewStreamConvServiceFactory',
'processes': ProcessSelector.ALLOW_IN_SOCKET_PROCESS,
},
{
'cid': '{cf0f71fd-fafd-4e2b-9fdc-134d972e16e2}',
'contract_ids': ['@mozilla.org/streamconv;1?from=application/http-index-format&to=text/html'],
'legacy_constructor': 'nsIndexedToHTML::Create',
'headers': ['/netwerk/streamconv/converters/nsIndexedToHTML.h'],
},
{
'cid': '{7d7008a0-c49a-11d3-9b22-0080c7cb1080}',
'contract_ids': ['@mozilla.org/streamconv;1?from=application/x-unknown-content-type&to=*/*'],
'legacy_constructor': 'CreateNewUnknownDecoderFactory',
},
{
'cid': '{66230b2b-17fa-4bd3-abf4-07986151022d}',
'contract_ids': [
'@mozilla.org/streamconv;1?from=br&to=uncompressed',
'@mozilla.org/streamconv;1?from=compress&to=uncompressed',
'@mozilla.org/streamconv;1?from=deflate&to=uncompressed',
'@mozilla.org/streamconv;1?from=gzip&to=uncompressed',
'@mozilla.org/streamconv;1?from=x-compress&to=uncompressed',
'@mozilla.org/streamconv;1?from=x-gzip&to=uncompressed',
],
'legacy_constructor': 'CreateNewHTTPCompressConvFactory',
'processes': ProcessSelector.ALLOW_IN_SOCKET_PROCESS,
},
{
'cid': '{7584ce90-5b25-11d3-a175-0050041caf44}',
'contract_ids': [
'@mozilla.org/streamconv;1?from=multipart/byteranges&to=*/*',
'@mozilla.org/streamconv;1?from=multipart/mixed&to=*/*',
'@mozilla.org/streamconv;1?from=multipart/x-mixed-replace&to=*/*',
],
'legacy_constructor': 'CreateNewMultiMixedConvFactory',
},
{
'cid': '{77c0e42a-1dd2-11b2-8ebf-edc6606f2f4b}',
'contract_ids': ['@mozilla.org/txttohtmlconv;1'],
'legacy_constructor': 'CreateNewTXTToHTMLConvFactory',
},
{
'cid': '{2f277c00-0eaf-4ddb-b936-41326ba48aae}',
'contract_ids': [],
'type': 'mozilla::net::nsNestedAboutURI::Mutator',
'headers': ['/netwerk/protocol/about/nsAboutProtocolHandler.h'],
},
{
'cid': '{56388dad-287b-4240-a785-85c394012503}',
'contract_ids': [],
'type': 'mozilla::net::nsSimpleNestedURI::Mutator',
'headers': ['nsSimpleNestedURI.h'],
},
{
'cid': '{9c4e9d49-ce64-4ca3-acef-3075c5e5aba7}',
'contract_ids': [],
'type': 'mozilla::net::nsSimpleNestedURI::Mutator',
'headers': ['nsSimpleNestedURI.h'],
},
{
'cid': '{b0054ef3-b096-483d-8242-4ee36b7b2115}',
'contract_ids': [],
'type': 'mozilla::net::nsNestedAboutURI::Mutator',
'headers': ['/netwerk/protocol/about/nsAboutProtocolHandler.h'],
},
{
'cid': '{b3cfeb91-332a-46c9-ad97-93ff39841494}',
'contract_ids': [],
'type': 'mozilla::net::SubstitutingURL::Mutator',
'headers': ['mozilla/net/SubstitutingURL.h'],
},
{
'cid': '{de9472d0-8034-11d3-9399-00104ba0fd40}',
'contract_ids': [],
'type': 'mozilla::net::nsStandardURL::Mutator',
'headers': ['/netwerk/base/nsStandardURL.h'],
'processes': ProcessSelector.ALLOW_IN_SOCKET_PROCESS,
},
{
'cid': '{dea9657c-18cf-4984-bde9-ccef5d8ab473}',
'contract_ids': [],
'type': 'mozilla::net::SubstitutingURL::Mutator',
'headers': ['mozilla/net/SubstitutingURL.h'],
},
Bug 1522137 - Make resource://android return a nsIJARURI. r=snorp,mayhemer,bzbarsky resource://android URIs always point to a "jar:" URI so it doesn't make sense that the returned URL object implements nsIFileURL. This also makes it so extensions can be loaded from a resource://android URI. Audited all places where we use `nsIJARURI` and check for places where we assume it looks like `jar:`: the only (!) place where we do that is here: https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/dom/xhr/XMLHttpRequestMainThread.cpp#1852 Where we have special handling for `jar:` URIs. It looks like we would have less special handling for such a request to a `resource://android` and it could be fixed by just checking for the interface instead, but that's what's already happening today so it should work. That code is never reached for `resource://android` URIs as `mIsMappedArrayBuffer` is false for those URIs (see #2822). And the code is consistent in checking for the scheme instead of the interface (the other check is here: https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/dom/xhr/XMLHttpRequestMainThread.cpp#2822) Audited all places where we do `EqualsLiteral("jar")`: https://searchfox.org/mozilla-central/search?q=.EqualsLiteral%28%22jar%22%29&path= `SubstituteRemoteChannel`: looks interesting, but uses `nsISubstitutingProtocolHandler::ResolveURI` to first get the real URI (which is a `jar:`) so it works for our case. https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/netwerk/protocol/res/ExtensionProtocolHandler.cpp#414 `SubstitutingProtocolHandler.cpp` This case is explicitly fixed by this change, making it account for both `"jar"` and `"resource"`. https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/netwerk/protocol/res/SubstitutingProtocolHandler.cpp#299 `ReadSourceFromFileName`: this also looks interesting, but uses the channel to get the URI which returns the real `"jar"` URI and not the mapped `"resource"`. https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/js/xpconnect/src/XPCJSRuntime.cpp#2837 `nsStringBundle.cpp` Accounts for both `"jar"` and `"resource"`, so it should work the same. https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/intl/strres/nsStringBundle.cpp#437 Audited all places where we use `nsINestedURI` to make sure they would work for a `nsIJARURI` which does not implement `nsINestedURI`. `BrowserContentHandler.jsm` Uses `nsINestedURI` to figure out if a URI is local or not and then it checks whether it's a `"file"`, `"resource"` or `"chrome"` URI, for a `nsIJARURI & nsINestedURI` it would return a `"file"` which passes the test, for a `nsIJARURI` alone it would return `"resource"` which is also considered local by this code, so the result wouldn't change. https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/browser/components/BrowserContentHandler.jsm#395-399 `nsScriptSecurityManager.cpp` `GetOriginFromURI`: This is the reason why `SubstitutingJARURI` doesn't implement `nsINestedURI`, the origin is computed starting from the innermost URI, which in our case would be a file. The behavior in our case is that the origin from a `resource://android` URI behaves like other `resource://` URIs, which is what we expect. https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/caps/nsScriptSecurityManager.cpp#169 `CheckLoadURIWithPrincipal`: for `nsIJARURI & nsINestedURI` this code will only allow pages from the same jar to be in the same origin (which is correct), for `nsIJARURI` this code is unreachable and it would allow every `resource://android` to load every other `resource://android` URI (which is essentially the same thing). https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/caps/nsScriptSecurityManager.cpp#874-876 `nsDocShell.cpp` `DisplayLoadError`: Just looping through the nested URI chain to build an error message, no concerns here (it would just ignore the `jar:` part, which is fine). https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/docshell/base/nsDocShell.cpp#3986 `DoURILoad`: Looking for `view-source`, no concerns for `resource://android`. https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/docshell/base/nsDocShell.cpp#9645 `nsObjectLoadingContent.cpp` Also looking for `view-source`, no concerns. https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/dom/base/nsObjectLoadingContent.cpp#2004 `nsIconURI.cpp`/`nsIconURI.h` Exposing `nsINestedURI`. No concerns. https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/image/decoders/icon/nsIconURI.cpp#58 `nsJARURI.cpp`/`nsJARURI.h` Exposing `nsINestedURI`, the subject of this audit. https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/modules/libjar/nsJARURI.cpp#45 `nsIOService.cpp` `URIChainHasFlags`: This code looks at the chain of nested URIs to figure out if the chain of protocols has a certain flags. for `nsIJARURI & nsINestedURI` it would look at both `jar:` and `file:` protocols, while in `nsIJARURI` it would only look at the `resource:` protocol, which is our intention, since we want this URI to be treated like a `resource:` URI and nothing else. Note the `resource:` URI is always local (enforced by `NewURI`), so this should be ok. https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/netwerk/base/nsIOService.cpp#1494 `nsNetUtil.cpp`/`nsNetUtil.h` Implementation of `NS_ImplGetInnermostURI`, which wouldn't work for `nsIJARURI` alone, as expected. https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/netwerk/base/nsNetUtil.h#704 `nsSimpleNestedURI.cpp`/`nsSimpleNestedURI.h` Implementing `nsINestedURI` for `nsSimpleNestedURI`, no concerns. https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/netwerk/base/nsSimpleNestedURI.cpp#19 `nsViewSourceHandler.cpp` Looking at `view-source` inner URI to get the flags, no concerns. https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/netwerk/protocol/viewsource/nsViewSourceHandler.cpp#49 `nsHtml5StreamParser.cpp`/`nsHtml5TreeOpExecutor.cpp` More `view-source` handling code. No concerns. https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/parser/html/nsHtml5StreamParser.cpp#310 https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/parser/html/nsHtml5TreeOpExecutor.cpp#884 `DownloadPlatform.cpp` `IsURLPossiblyFromWeb`: This line is unreachable as the method would return true because resource has `URI_IS_UI_RESOURCE`. https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/toolkit/components/downloads/DownloadPlatform.cpp#314 `getAnonymizedPath`: This code looks a little scary, and it's the first one that seems to conflate the fact that `jar: == nsINestedURI`. On the android case (line 2130) this code manually replaces the `resource://android` URI with a `jar:` URI, so it wouldn't matter whether `resource://android` implements `nsINestedURI` or not. Actually this code could be a lot easier by using `nsISubstitutingURL::resolveURI`, maybe I should open a bug. https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/toolkit/components/search/SearchService.jsm#2148 `getRemoteTypeForURIObject`: This also looks interesting. The switch at line 157 would go straight to line 218 for `resource:` URIs (irrespective of `nsINestedURI`) and then for `nsINestedURI` we would look at the `jar:` URI (and eventually the `file:` URI). While for not `nsINestedURI` we would call straight to `validatedWebRemoteType`. This might return `WEB_REMOTE_TYPE` instead of `FILE_REMOTE_TYPE`, but since it's already happening it should be ok (`resource://android` maps _today_ to a `jar:` file that return `WEB_RETURN_TYPE`) https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/toolkit/modules/E10SUtils.jsm#150 `getURIHost`: This is another piece of code that benefits from not implementing `nsINestedURI` as the host would be correctly `"android"` instead of the apk path. https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/toolkit/mozapps/downloads/DownloadUtils.jsm#390 `initDialog`: Download dialog would show the `resource://android` URI instead of the actual `jar:` URI, kind of expected. https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/toolkit/mozapps/downloads/HelperAppDlg.jsm#423 There are no places in the codebase where we do `== "jar"`. Looks like I've already looked at all hits for "jar" too. Checked for `"jar:` too and It looks like they are all from code that tries to build a `jar:` URI manually which is fine for this change. Audited all `schemeIs("jar")` occurrences: https://searchfox.org/mozilla-central/search?q=schemeIs(%22jar%22)&path= `browser-identity.js` Uses the channel URI which is always resolved to `jar:`, so that works regardless. See also: https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/netwerk/protocol/res/SubstitutingProtocolHandler.cpp#229 https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/browser/base/content/browser-siteIdentity.js#812 `tabbrowser.js` Only for `scheme == "about"` URIs. https://searchfox.org/mozilla-central/rev/b36e97fc776635655e84f2048ff59f38fa8a4626/browser/base/content/tabbrowser.js#789 `HelperAppDialog.js` Treats "jar:" and "resource" the same way. https://searchfox.org/mozilla-central/rev/dc0adc07db3df9431a0876156f50c65d580010cb/mobile/android/components/HelperAppDialog.js#63 `WebNavigationContent.js` This code checks if the scheme is "jar" and if the original URI is "resource" it will use that instead, so in our case it will use the "resource" URI either way. https://searchfox.org/mozilla-central/rev/dc0adc07db3df9431a0876156f50c65d580010cb/toolkit/modules/addons/WebNavigationContent.js#158 Depends on D18740 Differential Revision: https://phabricator.services.mozilla.com/D16913 --HG-- extra : moz-landing-system : lando
2019-02-25 18:38:33 +03:00
{
'cid': '{50d50ddf-f16a-4652-8705-936b19c3763b}',
'contract_ids': [],
'type': 'mozilla::net::SubstitutingJARURI',
'headers': ['mozilla/net/SubstitutingJARURI.h'],
'processes': ProcessSelector.ALLOW_IN_SOCKET_PROCESS,
},
{
'cid': '{e0da1d70-2f7b-11d3-8cd0-0060b0fc14a3}',
'contract_ids': [],
'type': 'mozilla::net::nsSimpleURI::Mutator',
'headers': ['nsSimpleURI.h'],
'processes': ProcessSelector.ALLOW_IN_SOCKET_PROCESS,
},
{
'js_name': 'cookies',
'cid': '{c375fa80-150f-11d6-a618-0010a401eb10}',
'contract_ids': [
'@mozilla.org/cookieService;1',
'@mozilla.org/cookiemanager;1',
],
'interfaces': ['nsICookieService', 'nsICookieManager'],
'singleton': True,
'type': 'nsICookieService',
'constructor': 'mozilla::net::CookieService::GetXPCOMSingleton',
'headers': ['/netwerk/cookie/CookieService.h'],
},
{
'cid': '{e1676f84-e6e5-45d0-a4bf-d9905efc5b2e}',
'contract_ids': ['@mozilla.org/http-sfv-service;1'],
'singleton': True,
'constructor': 'mozilla::net::GetSFVService',
'headers': ['mozilla/net/SFVService.h'],
},
{
'cid': '{4ce234f1-52e8-47a9-8c8d-b02f815733c7}',
'contract_ids': ['@mozilla.org/cookieJarSettings;1'],
'type': 'nsICookieJarSettings',
'constructor': 'mozilla::net::CookieJarSettings::CreateForXPCOM',
'headers': ['mozilla/net/CookieJarSettings.h'],
},
]
if defined('NECKO_WIFI'):
Classes += [
{
'cid': '{3ff8fb9f-ee63-48df-89f0-dace0242fd82}',
'contract_ids': ['@mozilla.org/wifi/monitor;1'],
'singleton': True,
'type': 'nsWifiMonitor',
'headers': ['/netwerk/wifi/nsWifiMonitor.h'],
},
]
toolkit = buildconfig.substs['MOZ_WIDGET_TOOLKIT']
link_service = None
if toolkit == 'windows':
link_service = {
'type': 'nsNotifyAddrListener',
'headers': ['/netwerk/system/win32/nsNotifyAddrListener.h'],
'init_method': 'Init',
}
elif toolkit == 'cocoa':
link_service = {
'type': 'nsNetworkLinkService',
'headers': ['/netwerk/system/mac/nsNetworkLinkService.h'],
'init_method': 'Init',
}
elif toolkit == 'android':
link_service = {
'type': 'nsAndroidNetworkLinkService',
'headers': ['/netwerk/system/android/nsAndroidNetworkLinkService.h'],
'init_method': 'Init',
}
elif buildconfig.substs['OS_ARCH'] == 'Linux':
link_service = {
'type': 'nsNetworkLinkService',
'headers': ['/netwerk/system/linux/nsNetworkLinkService.h'],
'init_method': 'Init',
}
if link_service:
Classes += [
dict({
'cid': '{75a500a2-0030-40f7-86f8-63f225b940ae}',
'contract_ids': ['@mozilla.org/network/network-link-service;1'],
'singleton': True,
}, **link_service)
]
if toolkit != 'android':
Classes += [
{
'cid': '{72da39cc-0b9b-4fff-8ff9-d3b9a41d0dc4}',
'contract_ids': ['@mozilla.org/net/CachePurgeLock;1'],
'type': 'mozilla::net::CachePurgeLock',
'headers': ['mozilla/net/CachePurgeLock.h'],
},
]