Example #1
0
        /// <summary>
        /// Creates nsIRequest wrapper
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public static Request WrapRequest(nsIRequest request)
        {
            if (request is nsIChannel)
            {
                return Channel.WrapChannel((nsIChannel)request);
            }
            if (request is nsIAsyncStreamCopier)
            {
                return new AsyncStreamCopier((nsIAsyncStreamCopier)request);
            }
            if (request is nsILoadGroup)
            {
                return new LoadGroup((nsILoadGroup)request);
            }
            if (request is nsIIncrementalDownload)
            {
                return new IncrementalDownload((nsIIncrementalDownload)request);
            }
            if (request is imgIRequest)
            {
                return new ImgRequest((imgIRequest)request);
            }
            if (request is nsIInputStreamPump)
            {

            }
            if (request is nsIURIChecker)
            {
                return new UriChecker((nsIURIChecker)request);
            }
            return new Request(request);
        }
Example #2
0
        public nsIStreamListener DoContent(nsACStringBase aMimeContentType, nsIRequest aRequest, nsIInterfaceRequestor aWindowContext, bool aForceSave)
        {
            var request  = Request.CreateRequest(aRequest);
            var lChannel = request as HttpChannel;

            try
            {
                if (lChannel != null)
                {
                    var uri                 = lChannel.OriginalUri;
                    var contentType         = lChannel.ContentType;
                    var contentLength       = lChannel.ContentLength;
                    var dispositionFilename = lChannel.ContentDispositionFilename;

                    // Do your contenttype validation, keeping only what you need.
                    // Make sure you clean dispositionFilename before using it.

                    // If you don't want to do anything with that file, you can return null;

                    return(new MyStreamListener(/* ... */));
                }
            }
            catch (COMException)
            {
                /* ... */
            }
            return(null);
        }
        public static Request CreateRequest(nsIRequest request)
        {
            if (request is nsIChannel)
            {
                return(Channel.CreateChannel(( nsIChannel )request));
            }

            if (request is nsIAsyncStreamCopier)
            {
                return(new AsyncStreamCopier(( nsIAsyncStreamCopier )request));
            }
            if (request is nsILoadGroup)
            {
                return(new LoadGroup(( nsILoadGroup )request));
            }
            if (request is nsIIncrementalDownload)
            {
                return(new IncrementalDownload(( nsIIncrementalDownload )request));
            }
            if (request is imgIRequest)
            {
                return(new ImgRequest(( imgIRequest )request));
            }
            if (request is nsIInputStreamPump)
            {
            }
            if (request is nsIURIChecker)
            {
                return(new UriChecker(( nsIURIChecker )request));
            }
            return(new Request(request));
        }
Example #4
0
 private void OnLocationChange(nsIWebProgress aWebProgress, nsIRequest aRequest, nsIURI aLocation, uint aFlags)
 {
     if (!_isListening)
     {
         return;
     }
 }
		Boolean nsIURIContentListener.DoContent(String aContentType, Boolean aIsContentPreferred, nsIRequest aRequest, out nsIStreamListener aContentHandler)
		{
			Trace.TraceInformation("nsIURIContentListener.DoContent: \"{0}\"", aContentType);

			aContentHandler = null;
			return false;
		}
Example #6
0
 private void OnSecurityChange(nsIWebProgress aWebProgress, nsIRequest aRequest, uint aState)
 {
     if (!_isListening)
     {
         return;
     }
 }
Example #7
0
        public void OnSecurityChange(nsIWebProgress progress, nsIRequest request, uint status)
        {
            SecurityChangedEventHandler eh = (SecurityChangedEventHandler)(owner.Events[WebBrowser.SecurityChangedEvent]);

            if (eh != null)
            {
                SecurityLevel state = SecurityLevel.Insecure;
                switch (status)
                {
                case 4:
                    state = SecurityLevel.Insecure;
                    break;

                case 1:
                    state = SecurityLevel.Mixed;
                    break;

                case 2:
                    state = SecurityLevel.Secure;
                    break;
                }

                SecurityChangedEventArgs e = new SecurityChangedEventArgs(state);
                eh(this, e);
            }
        }
 void nsIWebProgressListener2.OnProgressChange(
     nsIWebProgress aWebProgress, nsIRequest aRequest, int aCurSelfProgress, int aMaxSelfProgress,
     int aCurTotalProgress,
     int aMaxTotalProgress)
 {
     OnProgressChange(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress,
                      aMaxTotalProgress);
 }
Example #9
0
 bool nsIURIContentListener.doContent(string aContentType,
                                      bool aIsContentPreferred,
                                      nsIRequest aRequest,
                                      out nsIStreamListener aContentHandler)
 {
     aContentHandler = null;
     return(true);
 }
Example #10
0
		void nsIRequestObserver.OnStartRequest( nsIRequest aRequest, nsISupports aContext )
		{
			var started = Started;
			if (started != null)
			{
				started(this, EventArgs.Empty);
			}
		}
Example #11
0
		bool nsIURIContentListener.doContent (string aContentType,
				 bool aIsContentPreferred,
				 nsIRequest aRequest,
				out nsIStreamListener aContentHandler)
		{
			aContentHandler = null;
			return true;
		}
Example #12
0
 public static Request Create(nsIRequest request)
 {
     if (request is nsIChannel)
     {
         return(Channel.Create(( nsIChannel )request));
     }
     return(new Request(request));
 }
Example #13
0
		void nsIRequestObserver.OnStopRequest( nsIRequest aRequest, nsISupports aContext, int aStatusCode )
		{
			var stopped = Stopped;
			if (stopped != null)
			{
				stopped( this, EventArgs.Empty );
			}
		}
Example #14
0
        public void OnProgressChange(nsIWebProgress aWebProgress, nsIRequest aRequest, int aCurSelfProgress, int aMaxSelfProgress, int aCurTotalProgress, int aMaxTotalProgress)
        {
            nsIWebProgressListener b = (nsIWebProgressListener)_browser;

            if (b != null)
            {
                b.OnProgressChange(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress);
            }
        }
        public void OnStatusChange(nsIWebProgress aWebProgress, nsIRequest aRequest, int aStatus, string aMessage)
        {
            nsIWebProgressListener b = (nsIWebProgressListener)_browser;

            if (b != null)
            {
                b.OnStatusChange(aWebProgress, aRequest, aStatus, aMessage);
            }
        }
        public void OnLocationChange(nsIWebProgress aWebProgress, nsIRequest aRequest, nsIURI aLocation, uint flags)
        {
            nsIWebProgressListener b = (nsIWebProgressListener)_browser;

            if (b != null)
            {
                b.OnLocationChange(aWebProgress, aRequest, aLocation, flags);
            }
        }
        public void OnSecurityChange(nsIWebProgress aWebProgress, nsIRequest aRequest, uint aState)
        {
            nsIWebProgressListener b = (nsIWebProgressListener)_browser;

            if (b != null)
            {
                b.OnSecurityChange(aWebProgress, aRequest, aState);
            }
        }
        public void OnStateChange(nsIWebProgress aWebProgress, nsIRequest aRequest, uint aStateFlags, int aStatus)
        {
            nsIWebProgressListener b = (nsIWebProgressListener)_browser;

            if (b != null)
            {
                b.OnStateChange(aWebProgress, aRequest, aStateFlags, aStatus);
            }
        }
Example #19
0
        public void OnStartRequest(nsIRequest aRequest, nsISupports aContext)
        {
            var started = Started;

            if (started != null)
            {
                started(this, EventArgs.Empty);
            }
        }
Example #20
0
        public void OnStopRequest(nsIRequest aRequest, nsISupports aContext, int aStatusCode)
        {
            var stopped = Stopped;

            if (stopped != null)
            {
                stopped(this, EventArgs.Empty);
            }
        }
Example #21
0
        public void OnStatusChange(nsIWebProgress progress, nsIRequest request, string message, Int32 status)
        {
            StatusChangedEventHandler eh = (StatusChangedEventHandler)(owner.Events[WebBrowser.StatusChangedEvent]);

            if (eh != null)
            {
                StatusChangedEventArgs e = new StatusChangedEventArgs(message, status);
                eh(this, e);
            }
        }
            /// <summary>Creates a new instance of a <see cref="GeckoNavigatedEventArgs"/> object.</summary>
            /// <param name="value"></param>
            /// <param name="response"></param>
            internal GeckoNavigatedEventArgs(Uri value, nsIRequest response, GeckoWindow domWind, bool _sameDocument, bool _errorPage)
            {
                Uri               = value;
                _response         = response;
                DomWindow         = domWind;
                DomWindowTopLevel = ((domWind == null) ? true : DomWindow.DomWindow.Equals(DomWindow.Top.DomWindow));

                IsSameDocument = _sameDocument;
                IsErrorPage    = _errorPage;
            }
		void nsIWebProgressListener.OnProgressChange(nsIWebProgress aWebProgress, nsIRequest aRequest, Int32 aCurSelfProgress, Int32 aMaxSelfProgress, Int32 aCurTotalProgress, Int32 aMaxTotalProgress)
		{
			Trace.TraceInformation("nsIWebProgressListener.OnProgressChange");

			var e = new RequestProgressChangeEventArgs(aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress);
			Events.Raise(EventKey.RequestProgressChange, e);
			if (e.Cancel && (aRequest != null))
			{
				aRequest.Cancel(nsResult.NS_BINDING_ABORTED);
			}
		}
		void nsIWebProgressListener.OnStatusChange(nsIWebProgress aWebProgress, nsIRequest aRequest, UInt32 aStatus, String aMessage)
		{
			Trace.TraceInformation("nsIWebProgressListener.OnStatusChange");

			var e = new RequestStatusChangeEventArgs(aStatus, aMessage);
			Events.Raise(EventKey.RequestStatusChange, e);
			if (e.Cancel && (aRequest != null))
			{
				aRequest.Cancel(nsResult.NS_BINDING_ABORTED);
			}
		}
Example #25
0
 public void OnStateChange(nsIWebProgress aWebProgress, nsIRequest aRequest, uint aStateFlags, int aStatus)
 {
     if (_printing && ((aStateFlags & STATE_STOP) != 0))
     {
         _printing = false;
         if (PrintProgress != null)
         {
             PrintProgress.Invoke(this, new PdfPrintProgressEventArgs(false));
         }
     }
 }
Example #26
0
        /// <summary>
        /// PDF打印进度变化回调
        /// </summary>
        /// <param name="aWebProgress"></param>
        /// <param name="aRequest"></param>
        /// <param name="aCurSelfProgress"></param>
        /// <param name="aMaxSelfProgress"></param>
        /// <param name="aCurTotalProgress"></param>
        /// <param name="aMaxTotalProgress"></param>
        public void OnProgressChange(nsIWebProgress aWebProgress, nsIRequest aRequest, int aCurSelfProgress, int aMaxSelfProgress, int aCurTotalProgress, int aMaxTotalProgress)
        {
            if (aMaxTotalProgress <= 0)
            {
                return;
            }

            var statusText = "Making PDF File...";

            this.RaiseStatusChanged(aCurTotalProgress, statusText);
        }
		void nsIWebProgressListener.OnLocationChange(nsIWebProgress aWebProgress, nsIRequest aRequest, nsIURI aLocation)
		{
			Trace.TraceInformation("nsIWebProgressListener.OnLocationChange");

			var e = new LocationChangeEventArgs(aLocation.ToUri());
			Events.Raise(EventKey.LocationChange, e);
			if (e.Cancel && (aRequest != null))
			{
				aRequest.Cancel(nsResult.NS_BINDING_ABORTED);
			}
		}
Example #28
0
        public void OnProgress(nsIWebProgress progress, nsIRequest request, Int32 currentTotalProgress, Int32 maxTotalProgress)
        {
#if debug
            OnGeneric("OnProgress");
#endif
            ProgressChangedEventHandler eh = (ProgressChangedEventHandler)(owner.Events [Mono.Mozilla.WebBrowser.ProgressChangedEvent]);
            if (eh != null)
            {
                Mono.WebBrowser.ProgressChangedEventArgs e = new Mono.WebBrowser.ProgressChangedEventArgs(currentTotalProgress, maxTotalProgress);
                eh(this, e);
            }
        }
    public void OnDataAvailable(nsIRequest aRequest, nsISupports aContext, nsIInputStream aInputStream, ulong aOffset, uint aCount)
    {
        // This gets called several times with small chunks of data.
        // Do what you need with the stream. In my case, I read it
        // in a small buffer, which then gets written to an output
        // filestream (not shown).
        // The aOffset parameter is the sum of all previously received data.
        var lInput = InputStream.Create(aInputStream);

        byte[] lBuffer = new byte[aCount];
        lInput.Read(lBuffer, 0, (int)aCount);
    }
Example #30
0
 private void OnProgressChange(
     nsIWebProgress aWebProgress, nsIRequest aRequest, int aCurSelfProgress, int aMaxSelfProgress, int aCurTotalProgress,
     int aMaxTotalProgress)
 {
     if (!_isListening)
     {
         return;
     }
     //	var evnt = _onProgressChangeCallback;
     //	if ( evnt != null )
     //		evnt( aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress );
 }
Example #31
0
        private void OnStatusChange(nsIWebProgress aWebProgress, nsIRequest aRequest, int aStatus, string aMessage)
        {
            if (!_isListening)
            {
                return;
            }
            var evnt = _onStatusChangeCallback;

            if (evnt != null)
            {
                evnt(aMessage);
            }
        }
Example #32
0
        public void OnProgressChange(nsIWebProgress aWebProgress, nsIRequest aRequest, int aCurSelfProgress, int aMaxSelfProgress, int aCurTotalProgress, int aMaxTotalProgress)
        {
            if (aMaxTotalProgress == 0)
            {
                return;
            }

            RaiseStatusChanged(new PdfMakingStatus()
            {
                percentage  = (int)(100.0 * (aCurTotalProgress) / aMaxTotalProgress),
                statusLabel = Status
            });
        }
		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;
				}
			}
		}
Example #34
0
        private void OnStateChange(nsIWebProgress aWebProgress, nsIRequest aRequest, uint aStateFlags, int aStatus)
        {
            if (!_isListening)
            {
                return;
            }
            var evnt = _onStateChangeCallback;

            if (evnt != null)
            {
                evnt(aWebProgress, aRequest, aStateFlags, aStatus);
            }
        }
 public void OnStopRequest(nsIRequest aRequest, nsISupports aContext, int aStatusCode)
 {
     // This will also get called once, when the download is
     // complete or interrupted. You can perform the post-download
     // actions here.
     if (aStatusCode != GeckoError.NS_OK)
     {
         // download interrupted
     }
     else
     {
         // download completed
     }
 }
        public void OnProgressChange(nsIWebProgress webProgress, nsIRequest request, int currentSelfProgress,
		                             int maxSelfProgress,
		                             int currentTotalProgress, int maxTotalProgress)
        {
            if (maxTotalProgress == 0)
                return;

            // if we use the maxTotalProgress, the problem is that it starts off below 100, the jumps to 100 at the end
            // so it looks a lot better to just always scale, to 100, the current progress by the max at that point
            RaiseStatusChanged(new PdfMakingStatus()
                {
                    percentage = (int) (100.0*(currentTotalProgress)/maxTotalProgress),
                    statusLabel = Status
                });
        }
Example #37
0
        public void OnProgressChange(nsIWebProgress webProgress, nsIRequest request, int currentSelfProgress,
                                     int maxSelfProgress,
                                     int currentTotalProgress, int maxTotalProgress)
        {
            if (maxTotalProgress == 0)
            {
                return;
            }

            // if we use the maxTotalProgress, the problem is that it starts off below 100, the jumps to 100 at the end
            // so it looks a lot better to just always scale, to 100, the current progress by the max at that point
            RaiseStatusChanged(new PdfMakingStatus()
            {
                percentage  = (int)(100.0 * (currentTotalProgress) / maxTotalProgress),
                statusLabel = Status
            });
        }
Example #38
0
        /// <summary>
        /// PDF打印状态回调
        /// </summary>
        /// <param name="aWebProgress"></param>
        /// <param name="aRequest"></param>
        /// <param name="aStateFlags"></param>
        /// <param name="aStatus"></param>
        public void OnStateChange(nsIWebProgress aWebProgress, nsIRequest aRequest, uint aStateFlags, int aStatus)
        {
            var bFinished = ((aStateFlags & nsIWebProgressListenerConstants.STATE_STOP) != 0);

            if (!bFinished)
            {
                return;
            }

            //回调过不再回调
            if (this.brwPrintCheckTimer.Enabled)
            {
                return;
            }

            //启动定时器检查打印是否结束,下一步到定时器回调
            this.brwPrintCheckTimer.Enabled = true;
        }
Example #39
0
        public static Request CreateRequest(nsIRequest request)
        {
            if (request is nsIChannel)
            {
                return(Channel.CreateChannel((nsIChannel)request));
            }

            if (request is nsIAsyncStreamCopier)
            {
                return(new AsyncStreamCopier((nsIAsyncStreamCopier)request));
            }
            if (request is nsILoadGroup)
            {
                return(new LoadGroup((nsILoadGroup)request));
            }
            if (request is nsIIncrementalDownload)
            {
                return(new IncrementalDownload((nsIIncrementalDownload)request));
            }
            if (request is imgIRequest)
            {
                return(new ImgRequest((imgIRequest)request));
            }
            if (request is nsIInputStreamPump)
            {
            }

            // This interface no longer exists in gecko 45
#if false
            if (request is nsIURIChecker)
            {
                return(new UriChecker(( nsIURIChecker )request));
            }
#endif
            return(new Request(request));
        }
        void nsIWebProgressListener.OnProgressChange(nsIWebProgress aWebProgress, nsIRequest aRequest, int aCurSelfProgress, int aMaxSelfProgress, int aCurTotalProgress, int aMaxTotalProgress)
        {
            int nProgress = aCurTotalProgress;
            int nProgressMax = Math.Max(aMaxTotalProgress, 0);

            if (nProgressMax == 0)
                nProgressMax = Int32.MaxValue;

            if (nProgress > nProgressMax)
                nProgress = nProgressMax;

            OnProgressChanged(new GeckoProgressEventArgs(nProgress, nProgressMax));
        }
        void nsIWebProgressListener.OnLocationChange(nsIWebProgress aWebProgress, nsIRequest aRequest, nsIURI aLocation)
        {
            // make sure we're loading the top-level window
            nsIDOMWindow domWindow = aWebProgress.GetDOMWindow();
            if (domWindow != null)
            {
                  if (domWindow != domWindow.GetTop())
                        return;
            }

            Uri uri = new Uri(nsString.Get(aLocation.GetSpec));

            OnNavigated(new GeckoNavigatedEventArgs(uri, new GeckoResponse(aRequest)));
            UpdateCommandStatus();
        }
 public void OnStateChange(nsIWebProgress aWebProgress, nsIRequest aRequest, uint aStateFlags, int aStatus)
 {
     _finished = (aStateFlags & nsIWebProgressListenerConstants.STATE_STOP) != 0;
 }
 public void OnSecurityChange(nsIWebProgress aWebProgress, nsIRequest aRequest, uint aState)
 {
 }
 void nsIWebProgressListener2.OnLocationChange(nsIWebProgress aWebProgress, nsIRequest aRequest, nsIURI aLocation, uint aFlags)
 {
     OnLocationChange(aWebProgress, aRequest, aLocation, aFlags);
 }
 void nsIWebProgressListener.OnStatusChange(nsIWebProgress aWebProgress, nsIRequest aRequest, int aStatus, string aMessage)
 {
     if (aWebProgress.GetIsLoadingDocument())
     {
         StatusText = aMessage;
         UpdateCommandStatus();
     }
 }
 public void OnStatusChange(nsIWebProgress aWebProgress, nsIRequest aRequest, int aStatus, string aMessage)
 {
 }
Example #47
0
		public void OnProgressChange(nsIWebProgress aWebProgress, nsIRequest aRequest, int aCurSelfProgress, int aMaxSelfProgress, int aCurTotalProgress, int aMaxTotalProgress)
		{
		}
Example #48
0
		public void OnStateChange(nsIWebProgress aWebProgress, nsIRequest aRequest, uint aStateFlags, int aStatus)
		{
			if (_printing && ((aStateFlags & STATE_STOP) != 0)) {
				_printing = false;
				if (PrintProgress != null) {
					PrintProgress.Invoke (this, new PdfPrintProgressEventArgs(false));
				}
			}
		}
 internal GeckoResponse(nsIRequest request)
 {
     Channel = Xpcom.QueryInterface<nsIChannel>(request);
     HttpChannel = Xpcom.QueryInterface<nsIHttpChannel>(request);
 }
 private void OnStateChange( nsIWebProgress aWebProgress, nsIRequest aRequest, uint aStateFlags, int aStatus )
 {
     if ( !_isListening ) return;
     var evnt = _onStateChangeCallback;
     if ( evnt != null ) evnt( aWebProgress, aRequest, aStateFlags, aStatus );
 }
 private void OnStatusChange( nsIWebProgress aWebProgress, nsIRequest aRequest, int aStatus, string aMessage )
 {
     if (!_isListening) return;
     var evnt = _onStatusChangeCallback;
     if ( evnt != null ) evnt( aMessage );
 }
 void nsIWebProgressListener.OnSecurityChange(nsIWebProgress aWebProgress, nsIRequest aRequest, int aState)
 {
     SetSecurityState((GeckoSecurityState) aState);
 }
        void nsIWebProgressListener.OnStateChange(nsIWebProgress aWebProgress, nsIRequest aRequest, int aStateFlags, int aStatus)
        {
            bool cancelled = false;

            if ((aStateFlags & nsIWebProgressListenerConstants.STATE_START) != 0 && (aStateFlags & nsIWebProgressListenerConstants.STATE_IS_NETWORK) != 0)
            {
                IsBusy = true;

                Uri uri;
                Uri.TryCreate(nsString.Get(aRequest.GetName), UriKind.Absolute, out uri);

                GeckoNavigatingEventArgs ea = new GeckoNavigatingEventArgs(uri);
                OnNavigating(ea);

                if (ea.Cancel)
                {
                    aRequest.Cancel(0);
                    cancelled = true;
                }
            }

            // maybe we'll add another event here to allow users to cancel certain content types
            //if ((aStateFlags & nsIWebProgressListenerConstants.STATE_TRANSFERRING) != 0)
            //{
            //      GeckoResponse rsp = new GeckoResponse(aRequest);
            //      if (rsp.ContentType == "application/x-executable")
            //      {
            //            // do something
            //      }
            //}

            if (cancelled || ((aStateFlags & nsIWebProgressListenerConstants.STATE_STOP) != 0 && (aStateFlags & nsIWebProgressListenerConstants.STATE_IS_NETWORK) != 0))
            {
                // clear busy state
                IsBusy = false;

                // kill any cached document and raise DocumentCompleted event
                UnloadDocument();
                OnDocumentCompleted(EventArgs.Empty);

                // clear progress bar
                OnProgressChanged(new GeckoProgressEventArgs(100, 100));

                // clear status bar
                StatusText = "";
            }
        }
Example #54
0
		protected Request(nsIRequest request)
		{
			_request = new ComPtr<nsIRequest>( request );
		}
 public void OnLocationChange(nsIWebProgress aWebProgress, nsIRequest aRequest, nsIURI aLocation, uint aFlags)
 {
 }
        void nsIWebProgressListener.OnProgressChange(
			nsIWebProgress aWebProgress, nsIRequest aRequest, int aCurSelfProgress, int aMaxSelfProgress, int aCurTotalProgress,
			int aMaxTotalProgress )
        {
            OnProgressChange(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress);
        }
 void nsIWebProgressListener.OnStateChange( nsIWebProgress aWebProgress, nsIRequest aRequest, uint aStateFlags, int aStatus )
 {
     OnStateChange(aWebProgress, aRequest, aStateFlags, aStatus);
 }
 void nsIWebProgressListener.OnSecurityChange( nsIWebProgress aWebProgress, nsIRequest aRequest, uint aState )
 {
     OnSecurityChange( aWebProgress, aRequest, aState );
 }
        public static nsIRequest GetProxy(Mono.WebBrowser.IWebBrowser control, nsIRequest obj)
        {
            object o = Base.GetProxyForObject(control, typeof(nsIRequest).GUID, obj);

            return(o as nsIRequest);
        }
 void nsIWebProgressListener.OnStatusChange( nsIWebProgress aWebProgress, nsIRequest aRequest, int aStatus, string aMessage )
 {
     OnStatusChange( aWebProgress, aRequest, aStatus, aMessage );
 }