private void OnBeforeEventPageBrowserCreate(object sender, BrowserCreateEventArgs e)
        {
            try
            {
                if (_schemeHandler == null)
                {
                    // Create handler for loading the files within the package
                    _schemeHandler = new PackagedApplicationSchemeHandlerFactory(Package);
                }

                e.Router = MessageRouter;

                if (Metadata.UpdateLaunchStatus != null)
                {
                    Metadata.UpdateLaunchStatus("Loading event page ...");
                }

                // PackagedApplicationSchemeHandlerFactory will create HTML source for EventPage, containing background scripts from the manifest
                ((ICefWebBrowser)sender).Source = _schemeHandler.EventPageUrl;
            }
            catch (Exception ex)
            {
                Logger.Error("Error creating event page browser", ex);
            }
        }
        public override void CreateControl()
        {
            base.CreateControl();

            if (!_controlCreated && !DesignMode)
            {
                if (!ParagonRuntime.IsInitialized)
                {
                    ParagonRuntime.Initialize();
                }

                _client = new CefWebClient(this);

                if (!IsPopup && _browser == null)
                {
                    var settings = new CefBrowserSettings
                    {
                        Java = CefState.Disabled
                    };

                    using (AutoStopwatch.TimeIt("Creating browser"))
                    {
                        var info = CefWindowInfo.Create();
                        var ea   = new BrowserCreateEventArgs();

                        using (AutoStopwatch.TimeIt("Raising BeforeBrowserCreate event"))
                        {
                            BeforeBrowserCreate.Raise(this, ea);
                        }

                        _router     = ea.Router;
                        _currentUrl = _sourceUrl;

                        if (IntPtr.Zero != ParentHandle)
                        {
                            RECT rect = new RECT();
                            Win32Api.GetClientRect(ParentHandle, ref rect);
                            info.SetAsChild(ParentHandle, new CefRectangle(rect.Left, rect.Top, rect.Width, rect.Height));
                        }

                        Logger.Info(string.Format("OnHandleCreated - Creating a browser with url {0}", _currentUrl));
                        CefBrowserHost.CreateBrowser(info, _client, settings, _currentUrl);
                    }
                }

                _controlCreated = true;
            }
        }