bug 1582 - HTTP Referer header problem. This is now resolved with a preference (network.sendRefererHeader) If set to 0 no referrer header is sent (ever) If set to 1 the referrer header is sent only in cases of user link-clicks and if set to 2 is sent from image requests as well. bug 17158 - No Proxies For wasn't implemented. This was not being read correctly and I also moved and cleaned up the parsing function to nsProtocolProxyService (thereby also killing bug 27728) bug 24642 - http://www.win98central.com/#437 was crashing. bug 26686 - crash in nsHTTPRequest destructor. Both of these crashes were because of the nsHTTPRequest being unconditionally released in the destructor of nsHTTPChannel. Although the main problem remains, I have made it a non-crasher now. bug 27844 - HTTP breaks when only using FTP proxy. This was happening because we were not resetting values of the proxy when they are removed from the preference pane. git-svn-id: svn://10.0.0.236/trunk@61512 18797224-902f-48f8-a5cc-f745e15eee43
104 lines
3.3 KiB
Plaintext
104 lines
3.3 KiB
Plaintext
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
|
*
|
|
* The contents of this file are subject to the Netscape Public
|
|
* License Version 1.1 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy of
|
|
* the License at http://www.mozilla.org/NPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS
|
|
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
* implied. See the License for the specific language governing
|
|
* rights and limitations under the License.
|
|
*
|
|
* The Original Code is mozilla.org code.
|
|
*
|
|
* The Initial Developer of the Original Code is Netscape
|
|
* Communications Corporation. Portions created by Netscape are
|
|
* Copyright (C) 1998 Netscape Communications Corporation. All
|
|
* Rights Reserved.
|
|
*
|
|
* Contributor(s):
|
|
*/
|
|
|
|
#include "nsIChannel.idl"
|
|
|
|
interface nsIHTTPEventSink;
|
|
interface nsIStreamListener;
|
|
interface nsISimpleEnumerator;
|
|
interface nsIAtom;
|
|
interface nsIInputStream;
|
|
interface nsIURI;
|
|
|
|
[scriptable, uuid(35c00430-1938-11d3-933a-000064657374)]
|
|
interface nsIHTTPChannel : nsIChannel
|
|
{
|
|
/**
|
|
* More load attributes for http.
|
|
*/
|
|
const unsigned long BYPASS_CACHE = 1 << 1;
|
|
const unsigned long BYPASS_PROXY = 1 << 2;
|
|
|
|
/**
|
|
* Referrer sending policy.
|
|
*/
|
|
const unsigned long REFERRER_NONE = 0;
|
|
const unsigned long REFERRER_LINK_CLICK = 1; // http link clicks
|
|
const unsigned long REFERRER_INLINES = 2; // images and other inlines.
|
|
const unsigned long REFERRER_NON_HTTP = 3; // e.g. news clicks or FTP links.
|
|
|
|
/*
|
|
Request functions-
|
|
These functions set/get parameters on the outbound request and may only
|
|
be set before Load() function gets called. Calling them after
|
|
the Load() method will result in a NS_ERROR_ALREADY_CONNECTED
|
|
*/
|
|
string GetRequestHeader(in nsIAtom headerAtom);
|
|
void SetRequestHeader(in nsIAtom headerAtom, in string value);
|
|
nsISimpleEnumerator GetRequestHeaderEnumerator();
|
|
|
|
void SetRequestMethod(in unsigned long method);
|
|
// NS_IMETHOD SetRequestMethod(HTTPMethod i_Method=HM_GET) = 0;
|
|
|
|
/*
|
|
Pass in the post data if any...
|
|
*/
|
|
attribute nsIInputStream PostDataStream;
|
|
|
|
/*
|
|
Response funtions. A call to any of these implicitly calls
|
|
Load() on this protocol instance.
|
|
*/
|
|
string GetResponseHeader(in nsIAtom headerAtom);
|
|
void SetResponseHeader(in nsIAtom headerAtom, in string headerValue);
|
|
nsISimpleEnumerator GetResponseHeaderEnumerator();
|
|
|
|
/*
|
|
Explicitly set a referrer (HTTP's Referer) on this channel
|
|
*/
|
|
void SetReferrer(in nsIURI referrer, in unsigned long referrerLevel);
|
|
|
|
readonly attribute unsigned long ResponseStatus;
|
|
|
|
readonly attribute string ResponseString;
|
|
|
|
readonly attribute nsIHTTPEventSink EventSink;
|
|
|
|
readonly attribute nsIStreamListener ResponseDataListener;
|
|
|
|
readonly attribute string Charset;
|
|
|
|
attribute PRBool AuthTriedWithPrehost;
|
|
|
|
readonly attribute PRBool UsingProxy;
|
|
|
|
/*
|
|
This string if set is used for forming the final request. So if you
|
|
call SetProxyRequestURI(foo) on an HTTP Channel, the outbound
|
|
request would look something like GET foo HTTP/1.0... This is done
|
|
to allow other non-http specs to be used in proxy cases.
|
|
*/
|
|
attribute string ProxyRequestURI;
|
|
};
|
|
|
|
|