diff options
Diffstat (limited to 'netwerk/base/nsISpeculativeConnect.idl')
-rw-r--r-- | netwerk/base/nsISpeculativeConnect.idl | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/netwerk/base/nsISpeculativeConnect.idl b/netwerk/base/nsISpeculativeConnect.idl new file mode 100644 index 0000000000..e1f890a04b --- /dev/null +++ b/netwerk/base/nsISpeculativeConnect.idl @@ -0,0 +1,98 @@ +/* -*- 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 nsIPrincipal; +interface nsIURI; +interface nsIInterfaceRequestor; + +%{C++ +namespace mozilla { + +class OriginAttributes; + +} +%} + +native OriginAttributes(mozilla::OriginAttributes&&); + +[scriptable, builtinclass, uuid(d74a17ac-5b8a-4824-a309-b1f04a3c4aed)] +interface nsISpeculativeConnect : nsISupports +{ + /** + * Called as a hint to indicate a new transaction for the URI is likely coming + * soon. The implementer may use this information to start a TCP + * and/or SSL level handshake for that resource immediately so that it is + * ready and/or progressed when the transaction is actually submitted. + * + * No obligation is taken on by the implementer, nor is the submitter obligated + * to actually open the new channel. + * + * @param aURI the URI of the hinted transaction + * @param aPrincipal the principal that will be used for opening the + * channel of the hinted transaction. + * @param aCallbacks any security callbacks for use with SSL for interfaces. + * May be null. + * @param aAnonymous indicates if this is an anonymous connection. + * + */ + void speculativeConnect(in nsIURI aURI, + in nsIPrincipal aPrincipal, + in nsIInterfaceRequestor aCallbacks, + in boolean aAnonymous); + + /** + * This method is similar to speculativeConnect, but it use + * the partition key of the originAttributes directly to create the + * connection. + */ + [implicit_jscontext] + void speculativeConnectWithOriginAttributes( + in nsIURI aURI, + in jsval originAttributes, + in nsIInterfaceRequestor aCallbacks, + in boolean aAnonymous); + + [notxpcom] + void speculativeConnectWithOriginAttributesNative( + in nsIURI aURI, + in OriginAttributes originAttributes, + in nsIInterfaceRequestor aCallbacks, + in boolean aAnonymous); +}; + +/** + * This is used to override the default values for various values (documented + * inline) to determine whether or not to actually make a speculative + * connection. + */ +[uuid(1040ebe3-6ed1-45a6-8587-995e082518d7)] +interface nsISpeculativeConnectionOverrider : nsISupports +{ + /** + * Used to determine the maximum number of unused speculative connections + * we will have open for a host at any one time + */ + [infallible] readonly attribute unsigned long parallelSpeculativeConnectLimit; + + /** + * Used to determine if we will ignore the existence of any currently idle + * connections when we decide whether or not to make a speculative + * connection. + */ + [infallible] readonly attribute boolean ignoreIdle; + + /* + * Used by the Predictor to gather telemetry data on speculative connection + * usage. + */ + [infallible] readonly attribute boolean isFromPredictor; + + /** + * by default speculative connections are not made to RFC 1918 addresses + */ + [infallible] readonly attribute boolean allow1918; +}; |