nsIWebBrowserChrome nsIWindowCreator.CreateChromeWindow(nsIWebBrowserChrome parent, UInt32 chromeFlags)
			{
				Trace.TraceInformation("nsIWindowCreator.CreateChromeWindow");

				var browser = parent as WebBrowser;
				if (browser == null)
				{
					Trace.TraceWarning("Can't get Browser object");
					return null;
				}

				var e = new CreateWindowEventArgs((ChromeFlags)chromeFlags, null);
				browser.Events.Raise(EventKey.CreateWindow, e);
				return !e.Cancel ? e.Window : null;
			}
			nsIWebBrowserChrome nsIWindowCreator2.CreateChromeWindow2(nsIWebBrowserChrome parent, UInt32 chromeFlags, UInt32 contextFlags, nsIURI uri, out Boolean cancel)
			{
				Trace.TraceInformation("nsIWindowCreator2.CreateChromeWindow2");

				var browser = parent as WebBrowser;
				if (browser == null)
				{
					Trace.TraceWarning("Can't get Browser object");

					cancel = true;
					return null;
				}

				var e = new CreateWindowEventArgs((ChromeFlags)chromeFlags, uri.ToUri());
				browser.Events.Raise(EventKey.CreateWindow, e);
				cancel = e.Cancel;
				return !e.Cancel ? e.Window : null;
			}