Files
palemoon27/netwerk/socket/nsISocketProvider.idl
roytam1 3b1d2cdd8a import changes from `dev' branch of rmottola/Arctic-Fox:
- Bug 1171486 - Part 2: Make it OK to call ServiceWorkerManager::GetInstance() during its Init() function; r=baku (c3c7bd78c)
- Bug 1115820 - Add telemetry to ServiceWorkers. r=nsm, r=vladan (9a86f7466)
- Bug 1172717 - Fail on UNKNOWN_APP_ID instead of crashing. r=bholley a=RyanVM (f950a7c59)
- Bug 1154068 - rename relaxed to insecure scheme and add more runtime checks r=hurley (76e8ce41a)
- Bug 1154061 - clear cached alt svc mappings on a variety of state changes r=hurley (9855ee544)
- Bug 1153437 - rename proxyFlags to controlFlags with nsISocketProvider interfaces r=hurley (043a531c8)
- bug 1153212 - 2/2 Necko explicitly track origin vs routed host and give psm only origin r=dkeeler r=hurley IGNORE IDL (d44c3d0e6)
- part of Bug 935838 - Add per app network traffic statistics (d1861cb3d)
- Bug 1109338: Part 1: Separate UDPSocket logging from network logging r=dragana (c2c887b0f)
- Bug 1109338: Part 2: Sharing UDPSocket between PNecko and PBackground r=bent (90b2a09d2)
- Bug 1133189 - Extend PrincipalInfo to handle expanded principals. r=bent, r=sicking (d3269d57e)
- Bug 1155153 - about:serviceworkers should work in e10s mode, r=nsm, r=bholley (90dd0bb4b)
- Bug 1061116 - Make the comparison query/hash insensitive for validity widget. r=fabrice (0969e8404)
- Bug 1167603 - use string to replace nsIURI in aApps.widgetPages. r=fabrice (c528e2615)
- Bug 1087469 - Add support for a start_url property in app manifests r=fabrice (0053f26d6)
- Bug 1168783 - Expose principal in mozIApplication. r=fabrice (2fee4ed8e)
- Bug 1169249 - Unregister service worker registration when uninstalling a service-worker-enabled application. r=baku (c881ee50b)
- Bug 1174381 - ServiceWorkerManager::TeardownRunnable should be called when xpcom-shutdown notification is received, r=nsm (f47d59f19)
- Bug 1167296 - patch 1 - ServiceWorkerManager::RemoveAll should use PBackground, r=nsm (8f8feda13)
- Bug 1167296 - patch 2 - ServiceWorkerManager::Remove should use PBackground, r=nsm (fc931fffc)
2021-02-19 12:19:36 +08:00

110 lines
3.9 KiB
Plaintext

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* 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/. */
#include "nsISupports.idl"
interface nsIProxyInfo;
[ptr] native PRFileDescStar(struct PRFileDesc);
/**
* nsISocketProvider
*/
[scriptable, uuid(508d5469-9e1e-4a08-b5b0-7cfebba1e51a)]
interface nsISocketProvider : nsISupports
{
/**
* newSocket
*
* @param aFamily
* The address family for this socket (PR_AF_INET or PR_AF_INET6).
* @param aHost
* The origin hostname for this connection.
* @param aPort
* The origin port for this connection.
* @param aProxyHost
* If non-null, the proxy hostname for this connection.
* @param aProxyPort
* The proxy port for this connection.
* @param aFlags
* Control flags that govern this connection (see below.)
* @param aFileDesc
* The resulting PRFileDesc.
* @param aSecurityInfo
* Any security info that should be associated with aFileDesc. This
* object typically implements nsITransportSecurityInfo.
*/
[noscript]
void newSocket(in long aFamily,
in string aHost,
in long aPort,
in nsIProxyInfo aProxy,
in unsigned long aFlags,
out PRFileDescStar aFileDesc,
out nsISupports aSecurityInfo);
/**
* addToSocket
*
* This function is called to allow the socket provider to layer a
* PRFileDesc on top of another PRFileDesc. For example, SSL via a SOCKS
* proxy.
*
* Parameters are the same as newSocket with the exception of aFileDesc,
* which is an in-param instead.
*/
[noscript]
void addToSocket(in long aFamily,
in string aHost,
in long aPort,
in nsIProxyInfo aProxy,
in unsigned long aFlags,
in PRFileDescStar aFileDesc,
out nsISupports aSecurityInfo);
/**
* PROXY_RESOLVES_HOST
*
* This flag is set if the proxy is to perform hostname resolution instead
* of the client. When set, the hostname parameter passed when in this
* interface will be used instead of the address structure passed for a
* later connect et al. request.
*/
const long PROXY_RESOLVES_HOST = 1 << 0;
/**
* When setting this flag, the socket will not apply any
* credentials when establishing a connection. For example,
* an SSL connection would not send any client-certificates
* if this flag is set.
*/
const long ANONYMOUS_CONNECT = 1 << 1;
/**
* If set, indicates that the connection was initiated from a source
* defined as being private in the sense of Private Browsing. Generally,
* there should be no state shared between connections that are private
* and those that are not; it is OK for multiple private connections
* to share state with each other, and it is OK for multiple non-private
* connections to share state with each other.
*/
const unsigned long NO_PERMANENT_STORAGE = 1 << 2;
/**
* This flag is an explicit opt-in that allows a normally secure socket
* provider to use, at its discretion, an insecure algorithm. e.g.
* a TLS socket without authentication.
*/
const unsigned long MITM_OK = 1 << 3;
};
%{C++
/**
* nsISocketProvider implementations should be registered with XPCOM under a
* contract ID of the form: "@mozilla.org/network/socket;2?type=foo"
*/
#define NS_NETWORK_SOCKET_CONTRACTID_PREFIX \
"@mozilla.org/network/socket;2?type="
%}