void nsIObserver.Observe(nsISupports aSubject, string aTopic, string aData)
 {
     if (aTopic != ObserverNotifications.HttpRequests.HttpOnModifyRequest) return;
     using (var channel = HttpChannel.Create(aSubject))
     {
         ObserveRequest(channel);
     }
 }
		void nsIRequestObserver.OnStartRequest( nsIRequest aRequest, nsISupports aContext )
		{
			var started = Started;
			if (started != null)
			{
				started(this, EventArgs.Empty);
			}
		}
		void nsIRequestObserver.OnStopRequest( nsIRequest aRequest, nsISupports aContext, int aStatusCode )
		{
			var stopped = Stopped;
			if (stopped != null)
			{
				stopped( this, EventArgs.Empty );
			}
		}
 public void Show(nsIHelperAppLauncher aLauncher, nsISupports aWindowContext, uint aReason)
 {
     if (Download != null)
     {
         Download(this, new LauncherDialogEvent(aLauncher, aWindowContext, aReason));
     }
     else
     {
         aLauncher.Cancel(nsIHelperAppLauncherConstants.NS_BINDING_ABORTED);
     }
 }
		void nsIHttpActivityObserver.ObserveActivity(nsISupports httpChannel, uint activityType, uint activitySubtype, long timestamp, ulong extraSizeData, nsACStringBase extraStringData)
		{
			switch (activityType)
			{
				case nsIHttpActivityObserverConstants.ACTIVITY_TYPE_SOCKET_TRANSPORT:
					SocketTransport( httpChannel, activitySubtype, timestamp, extraSizeData, extraStringData );
					break;
				case nsIHttpActivityObserverConstants.ACTIVITY_TYPE_HTTP_TRANSACTION:
					HttpTransaction(httpChannel, activitySubtype, timestamp, extraSizeData, extraStringData);
					break;
			}
		}
		public JSAutoCompartment(AutoJSContext context, nsISupports comObject)
		{
			if (context == null)
				throw new ArgumentNullException("context");
			if (context.ContextPointer == IntPtr.Zero)
				throw new ArgumentException("context has Null ContextPointer");
			if (context == null)
				throw new ArgumentNullException("comObject");

			_obj = context.ConvertCOMObjectToJSObject(comObject);
			_cx = context.ContextPointer;
			_oldCompartment = SpiderMonkey.JS_EnterCompartment(_cx, _obj);			
		}
        void nsIObserver.Observe( nsISupports aSubject, string aTopic, string aData )
        {
            switch (aTopic)
            {
                case ObserverNotifications.HttpRequests.HttpOnModifyRequest:
                    using (var req = HttpChannel.Create( aSubject ))
                    {
                        // error handling will help in debug
            #if DEBUG
                        try
                        {
                            Request( req );
                        }
                        catch ( Exception e )
                        {
                            Console.WriteLine("Exception in observer implementation");
                        }
            #else
                        Request( req );
            #endif

                    }
                    break;
                case ObserverNotifications.HttpRequests.HttpOnExamineResponse:
                    using (var res = HttpChannel.Create( aSubject ))
                    {
                        // error handling will help in debug
            #if DEBUG
                        try
                        {
                            Response( res );
                        }
                        catch ( Exception e)
                        {
                            Console.WriteLine( "Exception in observer implementation" );
                        }
            #else
                        Response( res );
            #endif
                    }
                    break;
            }
        }
		public void Observe(nsISupports aSubject, string aTopic, string aData) {
			if (aTopic.Equals(ObserverNotifications.HttpRequests.HttpOnModifyRequest)) {
				using (var httpChannel = HttpChannel.Create(aSubject)) {

					var origUri = httpChannel.OriginalUri;

					var uri = httpChannel.Uri;
					var uriRef = httpChannel.Referrer;
					var reqMethod = httpChannel.RequestMethod;
					var reqHeaders = httpChannel.GetRequestHeaders();
					byte[] reqBody = null;
					bool? reqBodyContainsHeaders = null;

					#region POST data

					var uploadChannel = Xpcom.QueryInterface<nsIUploadChannel>(aSubject);
					var uploadChannel2 = Xpcom.QueryInterface<nsIUploadChannel2>(aSubject);

					if (uploadChannel != null) {
						var uc = new UploadChannel(uploadChannel);
						var uploadStream = uc.UploadStream;

						if (uploadStream != null) {
							if (uploadStream.CanSeek) {
								var rdr = new BinaryReader(uploadStream);
								var reqBodyStream = new MemoryStream();
								try {
									reqBody = new byte[] { };
									int avl = 0;
									while ((avl = ((int)uploadStream.Available)) > 0) {
										reqBodyStream.Write(rdr.ReadBytes(avl), 0, avl);
									}
									reqBody = reqBodyStream.ToArray();

									if (uploadChannel2 != null)
										reqBodyContainsHeaders = uploadChannel2.GetUploadStreamHasHeadersAttribute();
								}
								catch (IOException ex) {
									// failed to read body, ignore
								}

								// rewind stream, so browser can read it as usual
								uploadStream.Seek(0, 0);
							}
						}
					}

					#endregion POST data

					var evt = new GeckoObserveHttpModifyRequestEventArgs(uri, uriRef, reqMethod, reqBody, reqHeaders, httpChannel, reqBodyContainsHeaders);

					OnObserveHttpModifyRequest(evt);

					if (evt.Cancel) {
						httpChannel.Cancel(nsIHelperAppLauncherConstants.NS_BINDING_ABORTED);
					}
				}
			}
		}
        /// <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;
        }
Beispiel #10
0
 public SVGFETileElement(mozIDOMWindowProxy globalWindow, nsISupports thisObject) :
     base(globalWindow, thisObject)
 {
 }
 /// <summary>
 /// Evaluate javascript in the current context.
 /// </summary>
 /// <param name="jsScript"></param>
 /// <param name="thisObject">a nsISupports com object that this is set too.</param>
 /// <param name="result"></param>
 /// <returns></returns>
 public bool EvaluateScript(string jsScript, nsISupports thisObject, out string result)
 {
     try
     {
         Guid guid = typeof(nsISupports).GUID;
         IntPtr globalObject = SpiderMonkey.JS_GetGlobalForScopeChain(_cx);
         var ptr = new JsVal();
         var wrapper = XPConnect.WrapNative(_cx, globalObject, thisObject, ref guid);
         bool ret = SpiderMonkey.JS_EvaluateScript(_cx, wrapper.GetJSObjectAttribute(), jsScript, (uint)jsScript.Length, "script", 1, ref ptr);
         IntPtr jsStringPtr = SpiderMonkey.JS_ValueToString(_cx, ptr);
         result = Marshal.PtrToStringAnsi(SpiderMonkey.JS_EncodeString(_cx, jsStringPtr));
         return ret;
     }
     catch (Exception e)
     {
         Console.WriteLine("Exception {0}", e);
         result = String.Empty;
         return false;
     }
 }
 public void CanAccess(uint aAction, IntPtr aCallContext, IntPtr aJSContext, IntPtr aJSObject, nsISupports aObj, nsIClassInfo aClassInfo, IntPtr aName, ref IntPtr aPolicy)
 {
 }
 /// <summary>The async prompt authentication.</summary>
 /// <param name="parent">The parent.</param>
 /// <param name="channel">The channel.</param>
 /// <param name="callback">The callback.</param>
 /// <param name="context">The context.</param>
 /// <param name="level">The level.</param>
 /// <param name="authInfo">The authentication info.</param>
 /// <param name="checkboxLabel">The checkbox label.</param>
 /// <param name="checkValue">The check value.</param>
 /// <returns>The <see cref="nsICancelable"/>.</returns>
 public nsICancelable AsyncPromptAuth(
     nsIDOMWindow parent,
     nsIChannel channel,
     nsIAuthPromptCallback callback,
     nsISupports context,
     uint level,
     nsIAuthInformation authInfo,
     string checkboxLabel,
     ref bool checkValue)
 {
     return PromptService.AsyncPromptAuth(channel, callback, context, level, authInfo);
 }
 public PopStateEvent(nsIDOMWindow globalWindow, nsISupports thisObject) :
     base(globalWindow, thisObject)
 {
 }
Beispiel #15
0
 public Promise Put(WebIDLUnion <nsISupports, USVString> request, nsISupports response)
 {
     return(this.CallMethod <Promise>("put", request, response));
 }
Beispiel #16
0
 public HTMLOutputElement(nsIDOMWindow globalWindow, nsISupports thisObject) :
     base(globalWindow, thisObject)
 {
 }
 public RTCIceCandidate(mozIDOMWindowProxy globalWindow, nsISupports thisObject) :
     base(globalWindow, thisObject)
 {
 }
 public HTMLTableSectionElement(nsIDOMWindow globalWindow, nsISupports thisObject) :
     base(globalWindow, thisObject)
 {
 }
 public SVGAnimatedPathData(nsIDOMWindow globalWindow, nsISupports thisObject) :
     base(globalWindow, thisObject)
 {
 }
Beispiel #20
0
 public Cache(mozIDOMWindowProxy globalWindow, nsISupports thisObject) :
     base(globalWindow, thisObject)
 {
 }
Beispiel #21
0
		public IntPtr ConvertCOMObjectToJSObject(nsISupports obj)
		{
			Guid guid = typeof(nsISupports).GUID;

			IntPtr globalObject = GetGlobalObject();

			using (var holder = new ComPtr<nsIXPConnectJSObjectHolder>(Xpcom.XPConnect.Instance.WrapNative(_cx, globalObject, (nsISupports)obj, ref guid)))
			{
				int slot = holder.GetSlotOfComMethod(new Func<IntPtr>(holder.Instance.GetJSObject));
				var getJSObject = holder.GetComMethod<Xpcom.GetJSObjectFromHolderDelegate>(slot);
				return getJSObject(holder.Instance);
			}

		}
 public MozCellBroadcast(nsIDOMWindow globalWindow, nsISupports thisObject) :
     base(globalWindow, thisObject)
 {
 }
Beispiel #23
0
		public void PushCompartmentScope(nsISupports obj)
		{
			_compartmentStack.Push(new JSAutoCompartment(this, obj));
		}
Beispiel #24
0
 public Promise SetMediaKeys(nsISupports mediaKeys)
 {
     return(this.CallMethod <Promise>("setMediaKeys", mediaKeys));
 }
Beispiel #25
0
 public AnimationPlaybackEvent(mozIDOMWindowProxy globalWindow, nsISupports thisObject) :
     base(globalWindow, thisObject)
 {
 }
Beispiel #26
0
 public AlarmsManager(nsIDOMWindow globalWindow, nsISupports thisObject) :
     base(globalWindow, thisObject)
 {
 }
Beispiel #27
0
		public void AddRequest(Request request,nsISupports aContext)
		{
			_loadGroup.AddRequest( request.NativeRequest, aContext );
		}
 public WorkerDebuggerGlobalScope(nsIDOMWindow globalWindow, nsISupports thisObject) :
     base(globalWindow, thisObject)
 {
 }
 public void RemoveTrack(nsISupports track)
 {
     this.CallVoidMethod("removeTrack", track);
 }
 public ScrollViewChangeEvent(nsIDOMWindow globalWindow, nsISupports thisObject) :
     base(globalWindow, thisObject)
 {
 }
Beispiel #31
0
 public void Speak(nsISupports utterance)
 {
     this.CallVoidMethod("speak", utterance);
 }
Beispiel #32
0
 public SVGPathSegArcAbs(nsIDOMWindow globalWindow, nsISupports thisObject) :
     base(globalWindow, thisObject)
 {
 }
Beispiel #33
0
		private void SetValue(string name, nsISupports value)
		{
			if (name == null)
				throw new ArgumentNullException("name");

			using (var data = Xpcom.CreateInstance2<nsIWritableVariant>("@mozilla.org/variant;1"))
			{
				data.Instance.SetAsISupports(value);
				using (var key = new nsAString(name))
				{
					object comObj = command.Instance.SetUserData(key, data.Instance, null);
					Xpcom.FreeComObject(ref comObj);
				}
			}
		}
 public Performance(mozIDOMWindowProxy globalWindow, nsISupports thisObject) :
     base(globalWindow, thisObject)
 {
 }
Beispiel #35
0
		//public void ObserveActivity(nsISupports aHttpChannel, uint aActivityType, uint aActivitySubtype, uint aTimestamp, ulong aExtraSizeData, nsACString aExtraStringData)
		public void ObserveActivity(nsISupports aHttpChannel,
												 UInt32 aActivityType,
												 UInt32 aActivitySubtype,
												 Int64 aTimestamp,
												 UInt64 aExtraSizeData,
					 nsACStringBase aExtraStringData) {
			nsIHttpChannel httpChannel = Xpcom.QueryInterface<nsIHttpChannel>(aHttpChannel);

			if (httpChannel != null) {
				switch (aActivityType) {
					case nsIHttpActivityObserverConstants.ACTIVITY_TYPE_SOCKET_TRANSPORT:
						switch (aActivitySubtype) {
							case nsISocketTransportConstants.STATUS_RESOLVING:
								break;
							case nsISocketTransportConstants.STATUS_RESOLVED:
								break;
							case nsISocketTransportConstants.STATUS_CONNECTING_TO:
								break;
							case nsISocketTransportConstants.STATUS_CONNECTED_TO:
								break;
							case nsISocketTransportConstants.STATUS_SENDING_TO:
								break;
							case nsISocketTransportConstants.STATUS_WAITING_FOR:
								break;
							case nsISocketTransportConstants.STATUS_RECEIVING_FROM:
								break;
						}
						break;
					case nsIHttpActivityObserverConstants.ACTIVITY_TYPE_HTTP_TRANSACTION:
						switch (aActivitySubtype) {
							case nsIHttpActivityObserverConstants.ACTIVITY_SUBTYPE_REQUEST_HEADER: {
									activeNetworkChannels++;
									ActiveNetworkChannelUrls.Add(nsString.Get(httpChannel.GetURIAttribute().GetSpecAttribute));

									var callbacks = httpChannel.GetNotificationCallbacksAttribute();

                                    if (callbacks != null)
                                    {
                                        var httpChannelXHR = Xpcom.QueryInterface<nsIXMLHttpRequest>(callbacks);

                                        if (httpChannelXHR != null)
                                        {
                                            nsIXMLHttpRequestEventTarget mXMLRequestEvent = Xpcom.QueryInterface<nsIXMLHttpRequestEventTarget>(httpChannelXHR);

                                            if (mXMLRequestEvent != null)
                                            {
                                                GeckoJavaScriptHttpChannelWrapper mEventListener = new GeckoJavaScriptHttpChannelWrapper(this, httpChannel);
                                                origJavaScriptHttpChannels.Add(httpChannel, mEventListener);
                       
                                                using (nsAString mLoads = new nsAString("load"))
                                                {
                                                    mXMLRequestEvent.AddEventListener(mLoads, mEventListener, true, false, 0);
                                                }

                                                using (nsAString mLoads = new nsAString("abort"))
                                                {
                                                    mXMLRequestEvent.AddEventListener(mLoads, mEventListener, true, false, 0);
                                                }

                                                using (nsAString mLoads = new nsAString("error"))
                                                {
                                                    mXMLRequestEvent.AddEventListener(mLoads, mEventListener, true, false, 0);
                                                }

                                                Marshal.ReleaseComObject(mXMLRequestEvent);
                                            }

                                            Marshal.ReleaseComObject(httpChannelXHR);
                                        }

                                        Marshal.ReleaseComObject(callbacks);
                                    }

								}
								break;
							case nsIHttpActivityObserverConstants.ACTIVITY_SUBTYPE_REQUEST_BODY_SENT:
								break;
							case nsIHttpActivityObserverConstants.ACTIVITY_SUBTYPE_RESPONSE_START:
								break;
							case nsIHttpActivityObserverConstants.ACTIVITY_SUBTYPE_RESPONSE_COMPLETE:
								break;
							case nsIHttpActivityObserverConstants.ACTIVITY_SUBTYPE_TRANSACTION_CLOSE:
								activeNetworkChannels--;
								ActiveNetworkChannelUrls.Remove(nsString.Get(httpChannel.GetURIAttribute().GetSpecAttribute));
								break;
						}
						break;
				}
			}
		}
Beispiel #36
0
 public HTMLTimeElement(mozIDOMWindowProxy globalWindow, nsISupports thisObject) :
     base(globalWindow, thisObject)
 {
 }
Beispiel #37
0
		/// <summary>
		/// Evaluate javascript in the current context.
		/// </summary>
		/// <param name="jsScript"></param>
		/// <param name="thisObject">a nsISupports com object that this is set too.</param>
		/// <param name="result"></param>
		/// <returns></returns>
		public bool EvaluateScript(string jsScript, nsISupports thisObject, out string result)
		{
			try
			{
				Guid guid = typeof(nsISupports).GUID;
				var ptr = new JsVal();
				IntPtr globalObject = ConvertCOMObjectToJSObject(thisObject);
				using (new JSAutoCompartment(_cx, globalObject))
				{
					bool ret = SpiderMonkey.JS_EvaluateScript(_cx, globalObject, jsScript, (uint)jsScript.Length, "script", 1, ref ptr);
					result = ret ? ConvertValueToString(ptr) : null;
					return ret;
				}
			}
			catch (Exception e)
			{
				Console.WriteLine("Exception {0}", e);
				result = String.Empty;
				return false;
			}
		}
 public WindowClient(mozIDOMWindowProxy globalWindow, nsISupports thisObject) :
     base(globalWindow, thisObject)
 {
 }
Beispiel #39
0
		public JsVal ConvertCOMObjectToJSVal(IntPtr globalObject, nsISupports thisObject)
		{
			var writableVariant = Xpcom.CreateInstance2<nsIWritableVariant>(Contracts.WritableVariant);
			writableVariant.Instance.SetAsISupports(thisObject);
			return Xpcom.XPConnect.Instance.VariantToJS(_cx, globalObject, writableVariant.Instance);
		}
 IntPtr nsIFactory.CreateInstance(nsISupports aOuter, ref Guid iid)
 {
     IntPtr result = IntPtr.Zero;
     IntPtr iUnknownForObject = Marshal.GetIUnknownForObject(new LauncherDialog());
     Marshal.QueryInterface(iUnknownForObject, ref iid, out result);
     Marshal.Release(iUnknownForObject);
     return result;
 }
 public nsISupports Initialize(nsISupports newItem)
 {
     return(this.CallMethod <nsISupports>("initialize", newItem));
 }
 public MediaStream(nsIDOMWindow globalWindow, nsISupports thisObject) :
     base(globalWindow, thisObject)
 {
 }
 public nsISupports InsertItemBefore(nsISupports newItem, uint index)
 {
     return(this.CallMethod <nsISupports>("insertItemBefore", newItem, index));
 }
 public nsISupports ReplaceItem(nsISupports newItem, uint index)
 {
     return(this.CallMethod <nsISupports>("replaceItem", newItem, index));
 }
 public nsILocalFile PromptForSaveToFile(nsIHelperAppLauncher aLauncher, nsISupports aWindowContext, string aDefaultFileName, string aSuggestedFileExtension, bool aForcePrompt)
 {
     aLauncher.Cancel(nsIHelperAppLauncherConstants.NS_BINDING_ABORTED);
     return null;
 }
 public nsISupports AppendItem(nsISupports newItem)
 {
     return(this.CallMethod <nsISupports>("appendItem", newItem));
 }
 public LauncherDialogEvent(nsIHelperAppLauncher aLauncher, nsISupports aWindowContext, uint aReason)
 {
     HelperAppLauncher = aLauncher;
     WebNavigation = (nsIWebNavigation)aWindowContext;
 }
		protected virtual void HttpTransaction(nsISupports httpChannel,uint activitySubtype, long timestamp, ulong extraSizeData, nsACStringBase extraStringData)
		{
			
		}
 public void CanCreateWrapper(IntPtr aJSContext, ref Guid aIID, nsISupports aObj, nsIClassInfo aClassInfo, ref IntPtr aPolicy)
 {
 }
 IntPtr nsIFactory.CreateInstance(nsISupports aOuter, ref Guid iid)
 {
     return  Marshal.GetIUnknownForObject(new PromptService());
 }
Beispiel #51
0
		public void RemoveRequest( Request request, nsISupports aContext, int aStatus )
		{
			_loadGroup.RemoveRequest( request.NativeRequest, aContext, aStatus );
		}
Beispiel #52
0
		void nsIFactory.CreateInstance(nsISupports aOuter, ref Guid iid, out object result)
		{
			result = new PromptService();
		}
 public nsISupports CreateSVGTransformFromMatrix(nsISupports matrix)
 {
     return(this.CallMethod <nsISupports>("createSVGTransformFromMatrix", matrix));
 }
 public void AddTrack(nsISupports track)
 {
     this.CallVoidMethod("addTrack", track);
 }
        //public void ObserveActivity(nsISupports aHttpChannel, uint aActivityType, uint aActivitySubtype, uint aTimestamp, ulong aExtraSizeData, nsACString aExtraStringData)
        public void ObserveActivity(nsISupports aHttpChannel,
                                                 UInt32 aActivityType,
                                                 UInt32 aActivitySubtype,
                                                 Int64 aTimestamp,
                                                 UInt64 aExtraSizeData,
                     nsACStringBase aExtraStringData)
        {
            nsIHttpChannel httpChannel = Xpcom.QueryInterface<nsIHttpChannel>(aHttpChannel);

            if (httpChannel != null)
            {
                switch (aActivityType)
                {
                    case nsIHttpActivityObserverConstants.ACTIVITY_TYPE_SOCKET_TRANSPORT:
                        switch (aActivitySubtype)
                        {
                            case nsISocketTransportConstants.STATUS_RESOLVING:
                                break;
                            case nsISocketTransportConstants.STATUS_RESOLVED:
                                break;
                            case nsISocketTransportConstants.STATUS_CONNECTING_TO:
                                break;
                            case nsISocketTransportConstants.STATUS_CONNECTED_TO:
                                break;
                            case nsISocketTransportConstants.STATUS_SENDING_TO:
                                break;
                            case nsISocketTransportConstants.STATUS_WAITING_FOR:
                                break;
                            case nsISocketTransportConstants.STATUS_RECEIVING_FROM:
                                break;
                        }
                        break;
                    case nsIHttpActivityObserverConstants.ACTIVITY_TYPE_HTTP_TRANSACTION:
                        switch (aActivitySubtype)
                        {
                            case nsIHttpActivityObserverConstants.ACTIVITY_SUBTYPE_REQUEST_HEADER:
                                {
                                    activeNetworkChannels++;

                                    var callbacks = httpChannel.GetNotificationCallbacksAttribute();
                                    var httpChannelXHR = Xpcom.QueryInterface<nsIXMLHttpRequest>(callbacks);

                                    if (httpChannelXHR != null)
                                    {
                                        nsIDOMEventListener origEventListener = httpChannelXHR.GetOnreadystatechangeAttribute();
                                        var newEventListener = new GeckoJavaScriptHttpChannelWrapper(this, httpChannel, origEventListener);
                                        origJavaScriptHttpChannels.Add(httpChannel, newEventListener);
                                        httpChannelXHR.SetOnreadystatechangeAttribute(newEventListener);
                                    }
                                }
                                break;
                            case nsIHttpActivityObserverConstants.ACTIVITY_SUBTYPE_REQUEST_BODY_SENT:
                                break;
                            case nsIHttpActivityObserverConstants.ACTIVITY_SUBTYPE_RESPONSE_START:
                                break;
                            case nsIHttpActivityObserverConstants.ACTIVITY_SUBTYPE_RESPONSE_COMPLETE:
                                break;
                            case nsIHttpActivityObserverConstants.ACTIVITY_SUBTYPE_TRANSACTION_CLOSE:
                                activeNetworkChannels--;
                                break;
                        }
                        break;
                }
            }
        }
 public SVGTransformList(nsIDOMWindow globalWindow, nsISupports thisObject) :
     base(globalWindow, thisObject)
 {
 }
 public nsICancelable AsyncPromptAuth(nsIDOMWindow aParent, nsIChannel aChannel, nsIAuthPromptCallback aCallback, nsISupports aContext, uint level, nsIAuthInformation authInfo, string checkboxLabel, ref bool checkValue)
 {
     //throw new NotImplementedException();
     return null;
 }
 public BluetoothStatusChangedEvent(nsIDOMWindow globalWindow, nsISupports thisObject) :
     base(globalWindow, thisObject)
 {
 }
 public nsIDOMWindow OpenDialog(nsAString url, nsAString name, nsAString options, nsISupports aExtraArgument)
 {
     throw new NotImplementedException();
 }
 public MOZ_debug(mozIDOMWindowProxy globalWindow, nsISupports thisObject) :
     base(globalWindow, thisObject)
 {
 }