internal GeckoResponse(nsIRequest request)
		{
			// we use only one wrapper
			_request = Request.WrapRequest( request );
			if ( _request is Channel )
			{
				_channel = ( Channel ) _request;
				if ( _channel is HttpChannel )
				{
					_httpChannel = ( HttpChannel ) _channel;
				}
			}
		}
 protected virtual void Response(HttpChannel channel)
 {
 }
 protected virtual void Request(HttpChannel channel)
 {
 }
 protected virtual void ObserveRequest(HttpChannel channel)
 {
 }
        /// <summary>
        /// Creates HttpChannel directly from nsISupports
        /// </summary>
        /// <param name="supports"></param>
        /// <returns></returns>
        public static HttpChannel Create(nsISupports supports)
        {
            //int count = Interop.ComDebug.GetRcwRefCount(supports);

            var channel = Xpcom.QueryInterface<nsIHttpChannel>(supports);
            if (channel == null) return null;
            Marshal.ReleaseComObject(channel);
            var ret = new HttpChannel((nsIHttpChannel)supports);

            //var count2=Interop.ComDebug.GetRcwRefCount( supports );

            return ret;
        }
		/// <summary>Creates a new instance of a <see cref="GeckoObserveHttpModifyRequestEventArgs"/> object.</summary>
		/// <param name="uri">Uri</param>
		/// <param name="refVal">Referrer</param>
		/// <param name="reqMethod">Request Method</param>
		/// <param name="reqBody">Request Body</param>
		/// <param name="reqHeaders">Request Headers</param>
		/// <param name="httpChan">Reference to Http Channel</param>
		/// <param name="bodyContainsHeaders">Does ReqBody contain the headers</param>
		public GeckoObserveHttpModifyRequestEventArgs(Uri uri, Uri refVal, String reqMethod, Byte[] reqBody, List<KeyValuePair<string, string>> reqHeaders, HttpChannel httpChan, bool? bodyContainsHeaders)
			: base(false) {
			Uri = uri;
			Referrer = refVal;
			RequestMethod = reqMethod;
			RequestBody = reqBody;
			RequestHeaders = reqHeaders;
			Channel = httpChan;
			ReqBodyContainsHeaders = bodyContainsHeaders;
		}