public void InitializeChromium(object bindeable, EventHandler browserIsBrowserInitializedChanged) { try { Logger.Info("Creating Chromium instance.."); Cef.EnableHighDPISupport(); //var settings = new CefSettings(); //settings.CefCommandLineArgs.Add("disable-gpu", "1"); CefSettingsBase settings = new CefSettings { }; if (!Cef.Initialize(settings)) { Logger.Fatal("Could not initialize Chromium"); MessageBox.Show("Fatal error - Could not initialize chromium", "Fatal error", MessageBoxButtons.OK, MessageBoxIcon.Error); } _browser = new ChromiumWebBrowser(GlobalPaths.ItemsHtmlFile); // TODO: Read and analyze https://github.com/cefsharp/CefSharp/issues/2246 -- Is this the correct way to do things in the future? CefSharpSettings.LegacyJavascriptBindingEnabled = true; CefSharpSettings.WcfEnabled = true; _browser.JavascriptObjectRepository.Register("data", bindeable, isAsync: false, options: BindingOptions.DefaultBinder); _browser.IsBrowserInitializedChanged += browserIsBrowserInitializedChanged; var requestHandler = new CefRequestHandler(); requestHandler.TransferSingleRequested += (sender, args) => this.TransferSingleRequested?.Invoke(sender, args); requestHandler.TransferAllRequested += (sender, args) => this.TransferAllRequested?.Invoke(sender, args); requestHandler.OnAuthentication += (sender, args) => OnSuccess?.Invoke(sender, args); _browser.RequestHandler = requestHandler; _browser.LifeSpanHandler = new AzureOnClosePopupHijack(); Logger.Info("Chromium created.."); } catch (System.IO.FileNotFoundException ex) { MessageBox.Show("Error \"File Not Found\" loading Chromium, did you forget to install Visual C++ runtimes?\n\nvc_redist86 in the IA folder.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); Logger.Warn(ex.Message); Logger.Warn(ex.StackTrace); throw; } catch (IOException ex) { MessageBox.Show("Error loading Chromium, did you forget to install Visual C++ runtimes?\n\nvc_redist86 in the IA folder.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); Logger.Warn(ex.Message); Logger.Warn(ex.StackTrace); throw; } catch (Exception ex) { MessageBox.Show("Unknown error loading Chromium, please see log file for more information.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); Logger.Warn(ex.Message); Logger.Warn(ex.StackTrace); throw; } }
public void InitializeChromium(object bindable, EventHandler browserIsBrowserInitializedChanged, TabControl tabControl) { try { Logger.Info("Creating Chromium instance.."); _tabControl = tabControl; // Useful: https://github.com/cefsharp/CefSharp/blob/cefsharp/79/CefSharp.Example/CefExample.cs#L208 Cef.EnableHighDPISupport(); // TODO: Read and analyze https://github.com/cefsharp/CefSharp/issues/2246 -- Is this the correct way to do things in the future? CefSharpSettings.WcfEnabled = true; BrowserControl = new ChromiumWebBrowser(GetSiteUri()); // TODO: browser.JavascriptObjectRepository.ObjectBoundInJavascript += (sender, e) => BrowserControl.JavascriptObjectRepository.Settings.LegacyBindingEnabled = true; BrowserControl.JavascriptObjectRepository.Register("core", bindable, isAsync: false, options: BindingOptions.DefaultBinder); BrowserControl.IsBrowserInitializedChanged += browserIsBrowserInitializedChanged; BrowserControl.FrameLoadEnd += (sender, args) => browserIsBrowserInitializedChanged(this, args); ; var requestHandler = new CefRequestHandler(); requestHandler.OnAuthentication += (sender, args) => OnAuthSuccess?.Invoke(sender, args); BrowserControl.RequestHandler = requestHandler; BrowserControl.LifeSpanHandler = new AzureOnClosePopupHijack(); Logger.Info("Chromium created.."); } catch (System.IO.FileNotFoundException ex) { MessageBox.Show("Error \"File Not Found\" loading Chromium, did you forget to install Visual C++ runtimes?\n\nvc_redist86 in the IA folder.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); Logger.Warn(ex.Message); Logger.Warn(ex.StackTrace); throw; } catch (IOException ex) { MessageBox.Show("Error loading Chromium, did you forget to install Visual C++ runtimes?\n\nvc_redist86 in the IA folder.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); Logger.Warn(ex.Message); Logger.Warn(ex.StackTrace); throw; } catch (Exception ex) { MessageBox.Show("Unknown error loading Chromium, please see log file for more information.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); Logger.Warn(ex.Message); Logger.Warn(ex.StackTrace); throw; } }
public void InitializeChromium(object bindeable, EventHandler <IsBrowserInitializedChangedEventArgs> Browser_IsBrowserInitializedChanged) { try { Logger.Info("Creating Chromium instance.."); Cef.EnableHighDPISupport(); //var settings = new CefSettings(); //settings.CefCommandLineArgs.Add("disable-gpu", "1"); if (!Cef.Initialize()) { Logger.Fatal("Could not initialize Chromium"); MessageBox.Show("Fatal error - Could not initialize chromium", "Fatal error", MessageBoxButtons.OK, MessageBoxIcon.Error); } _browser = new ChromiumWebBrowser(GlobalPaths.ItemsHtmlFile); _browser.RegisterJsObject("data", bindeable, false); _browser.IsBrowserInitializedChanged += Browser_IsBrowserInitializedChanged; var requestHandler = new CefRequestHandler(); requestHandler.TransferSingleRequested += (sender, args) => this.TransferSingleRequested?.Invoke(sender, args); requestHandler.TransferAllRequested += (sender, args) => this.TransferAllRequested?.Invoke(sender, args); requestHandler.OnAuthentication += (sender, args) => OnSuccess?.Invoke(sender, args); _browser.RequestHandler = requestHandler; _browser.LifeSpanHandler = new AzureOnClosePopupHijack(); Logger.Info("Chromium created.."); } catch (System.IO.FileNotFoundException ex) { MessageBox.Show("Error \"File Not Found\" loading Chromium, did you forget to install Visual C++ runtimes?\n\nvc_redist86 in the IA folder.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); Logger.Warn(ex.Message); Logger.Warn(ex.StackTrace); throw; } catch (IOException ex) { MessageBox.Show("Error loading Chromium, did you forget to install Visual C++ runtimes?\n\nvc_redist86 in the IA folder.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); Logger.Warn(ex.Message); Logger.Warn(ex.StackTrace); throw; } catch (Exception ex) { MessageBox.Show("Unknown error loading Chromium, please see log file for more information.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); Logger.Warn(ex.Message); Logger.Warn(ex.StackTrace); throw; } }