gecko/netwerk/socket/nsISSLSocketControl.idl
Patrick McManus 69f3ac27e2 bug 874170 - default npn protocol should be http/1.1 r=hurley
--HG--
extra : rebase_source : 3c772fd36262f9a7bacbfc5d4d3cfe15d700973d
2013-05-28 20:09:22 -04:00

61 lines
2.1 KiB
Plaintext

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* 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 nsIInterfaceRequestor;
%{C++
#include "nsTArray.h"
class nsCString;
%}
[ref] native nsCStringTArrayRef(nsTArray<nsCString>);
[scriptable, uuid(bb2bb490-3ba4-4254-b8f5-8b43c7b714ea)]
interface nsISSLSocketControl : nsISupports {
attribute nsIInterfaceRequestor notificationCallbacks;
void proxyStartSSL();
void StartTLS();
/* NPN (Next Protocol Negotiation) is a mechanism for
negotiating the protocol to be spoken inside the SSL
tunnel during the SSL handshake. The NPNList is the list
of offered client side protocols. setNPNList() needs to
be called before any data is read or written (including the
handshake to be setup correctly. The server determines the
priority when multiple matches occur, but if there is no overlap
the first protocol in the list is used. */
[noscript] void setNPNList(in nsCStringTArrayRef aNPNList);
/* negotiatedNPN is '' if no NPN list was provided by the client,
* or if the server did not select any protocol choice from that
* list. That also includes the case where the server does not
* implement NPN.
*
* If negotiatedNPN is read before NPN has progressed to the point
* where this information is available NS_ERROR_NOT_CONNECTED is
* raised.
*/
readonly attribute ACString negotiatedNPN;
/* Determine if a potential SSL connection to hostname:port with
* a desired NPN negotiated protocol of npnProtocol can use the socket
* associated with this object instead of making a new one.
*/
boolean joinConnection(
in ACString npnProtocol, /* e.g. "spdy/2" */
in ACString hostname,
in long port);
/*
* The original flags from the socket provider.
*/
readonly attribute uint32_t providerFlags;
};