netwerk/protocol/http/nsIHttpChannelInternal.idl

Thu, 15 Jan 2015 21:03:48 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Jan 2015 21:03:48 +0100
branch
TOR_BUG_9701
changeset 11
deefc01c0e14
permissions
-rw-r--r--

Integrate friendly tips from Tor colleagues to make (or not) 4.5 alpha 3;
This includes removal of overloaded (but unused) methods, and addition of
a overlooked call to DataStruct::SetData(nsISupports, uint32_t, bool.)

     1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
     2 /* This Source Code Form is subject to the terms of the Mozilla Public
     3  * License, v. 2.0. If a copy of the MPL was not distributed with this
     4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     6 #include "nsISupports.idl"
     8 %{C++
     9 template<class T> class nsTArray;
    10 template<class T> class nsCOMArray;
    11 class nsCString;
    12 %}
    13 [ptr] native StringArray(nsTArray<nsCString>);
    14 [ref] native securityMessagesArray(nsCOMArray<nsISecurityConsoleMessage>);
    16 interface nsISocketTransport;
    17 interface nsIAsyncInputStream;
    18 interface nsIAsyncOutputStream;
    19 interface nsIURI;
    20 interface nsIProxyInfo;
    21 interface nsISecurityConsoleMessage;
    23 /**
    24  * The callback interface for nsIHttpChannelInternal::HTTPUpgrade()
    25  */
    27 [scriptable, uuid(4b967b6d-cd1c-49ae-a457-23ff76f5a2e8)]
    28 interface nsIHttpUpgradeListener : nsISupports
    29 {
    30     void onTransportAvailable(in nsISocketTransport   aTransport,
    31                               in nsIAsyncInputStream  aSocketIn,
    32                               in nsIAsyncOutputStream aSocketOut);
    33 };
    35 /**
    36  * Dumping ground for http.  This interface will never be frozen.  If you are
    37  * using any feature exposed by this interface, be aware that this interface
    38  * will change and you will be broken.  You have been warned.
    39  */
    40 [scriptable, uuid(b733194f-6751-4876-a444-bca4ba3f2fcb)]
    41 interface nsIHttpChannelInternal : nsISupports
    42 {
    43     /**
    44      * An http channel can own a reference to the document URI
    45      */
    46     attribute nsIURI documentURI;
    48     /**
    49      * Get the major/minor version numbers for the request
    50      */
    51     void getRequestVersion(out unsigned long major, out unsigned long minor);
    53     /**
    54      * Get the major/minor version numbers for the response
    55      */
    56     void getResponseVersion(out unsigned long major, out unsigned long minor);
    58     /*
    59      * Retrieves all security messages from the security message queue
    60      * and empties the queue after retrieval
    61      */
    62     [noscript] void takeAllSecurityMessages(in securityMessagesArray aMessages);
    64     /**
    65      * Helper method to set a cookie with a consumer-provided
    66      * cookie header, _but_ using the channel's other information
    67      * (URI's, prompters, date headers etc).
    68      *
    69      * @param aCookieHeader
    70      *        The cookie header to be parsed.
    71      */
    72     void setCookie(in string aCookieHeader);
    74     /**
    75      * Setup this channel as an application cache fallback channel.
    76      */
    77     void setupFallbackChannel(in string aFallbackKey);
    79     /**
    80      * Force relevant cookies to be sent with this load even if normally they
    81      * wouldn't be.
    82      */
    83     attribute boolean forceAllowThirdPartyCookie;
    85     /**
    86      * True iff the channel has been canceled.
    87      */
    88     readonly attribute boolean canceled;
    90     /**
    91      * External handlers may set this to true to notify the channel
    92      * that it is open on behalf of a download.
    93      */
    94     attribute boolean channelIsForDownload;
    96     /**
    97      * The local IP address to which this channel is bound, in the
    98      * format produced by PR_NetAddrToString. May be IPv4 or IPv6.
    99      * Note: in the presence of NAT, this may not be the same as the
   100      * address that the remote host thinks it's talking to.
   101      *
   102      * May throw NS_ERROR_NOT_AVAILABLE if accessed when the channel's
   103      * endpoints are not yet determined, or in any case when
   104      * nsIHttpActivityObserver.isActive is false. See bugs 534698 and 526207.
   105      */
   106     readonly attribute AUTF8String localAddress;
   108     /**
   109      * The local port number to which this channel is bound.
   110      *
   111      * May throw NS_ERROR_NOT_AVAILABLE if accessed when the channel's
   112      * endpoints are not yet determined, or in any case when
   113      * nsIHttpActivityObserver.isActive is false. See bugs 534698 and 526207.
   114      */
   115     readonly attribute int32_t localPort;
   117     /**
   118      * The IP address of the remote host that this channel is
   119      * connected to, in the format produced by PR_NetAddrToString.
   120      *
   121      * May throw NS_ERROR_NOT_AVAILABLE if accessed when the channel's
   122      * endpoints are not yet determined, or in any case when
   123      * nsIHttpActivityObserver.isActive is false. See bugs 534698 and 526207.
   124      */
   125     readonly attribute AUTF8String remoteAddress;
   127     /**
   128      * The remote port number that this channel is connected to.
   129      *
   130      * May throw NS_ERROR_NOT_AVAILABLE if accessed when the channel's
   131      * endpoints are not yet determined, or in any case when
   132      * nsIHttpActivityObserver.isActive is false. See bugs 534698 and 526207.
   133      */
   134     readonly attribute int32_t remotePort;
   136     /**
   137      * Transfer chain of redirected cache-keys.
   138      */
   139     [noscript] void setCacheKeysRedirectChain(in StringArray cacheKeys);
   141     /**
   142      * HTTPUpgrade allows for the use of HTTP to bootstrap another protocol
   143      * via the RFC 2616 Upgrade request header in conjunction with a 101 level
   144      * response. The nsIHttpUpgradeListener will have its
   145      * onTransportAvailable() method invoked if a matching 101 is processed.
   146      * The arguments to onTransportAvailable provide the new protocol the low
   147      * level tranport streams that are no longer used by HTTP.
   148      *
   149      * The onStartRequest and onStopRequest events are still delivered and the
   150      * listener gets full control over the socket if and when onTransportAvailable
   151      * is delievered.
   152      *
   153      * @param aProtocolName
   154      *        The value of the HTTP Upgrade request header
   155      * @param aListener
   156      *        The callback object used to handle a successful upgrade
   157      */
   158     void HTTPUpgrade(in ACString aProtocolName,
   159                      in nsIHttpUpgradeListener aListener);
   161     /**
   162      * Enable/Disable Spdy negotiation on per channel basis.
   163      * The network.http.spdy.enabled preference is still a pre-requisite
   164      * for starting spdy.
   165      */
   166     attribute boolean allowSpdy;
   168     /**
   169      * Set (e.g., by the docshell) to indicate whether or not the channel
   170      * corresponds to content that should be given a degree of network exclusivity
   171      * with respect to other members of its load group.
   172      * Examples are js from the HTML head and css which are latency
   173      * sensitive and should not compete with images for bandwidth. Default false.
   174      */
   175     attribute boolean loadAsBlocking;
   177     /**
   178      * If set, this channel will load in parallel with the rest of the load
   179      * group even if a blocking subset of the group would normally be given
   180      * exclusivity. Default false.
   181      */
   182     attribute boolean loadUnblocked;
   184     /**
   185      * This attribute en/disables the timeout for the first byte of an HTTP
   186      * response. Enabled by default.
   187      */
   188     attribute boolean responseTimeoutEnabled;
   190     /**
   191      * Get value of the URI passed to nsIHttpChannel.redirectTo() if any.
   192      * May return null when redirectTo() has not been called.
   193      */
   194     readonly attribute nsIURI apiRedirectToURI;
   195 };

mercurial