protected override void OnCreate(ref CreateWindowPacket packet) { //For Windows 7 and above, best to include relevant app.manifest entries as well CefSharpGlobal.Cef.EnableHighDPISupport(); var codeBase = Assembly.GetExecutingAssembly().CodeBase; var localFolder = Path.GetDirectoryName(new Uri(codeBase).LocalPath); var localesDirPath = Path.Combine(localFolder, "locales"); var settings = new CefSharpGlobal.CefSettings { LocalesDirPath = localesDirPath, Locale = HostConfig.CefLocale, MultiThreadedMessageLoop = true, CachePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "CefSharp\\Cache"), LogSeverity = (CefSharpGlobal.LogSeverity)HostConfig.CefLogSeverity, LogFile = HostConfig.CefLogFile }; RegisterSchemeHandlers(settings); //Perform dependency check to make sure all relevant resources are in our output directory. CefSharpGlobal.Cef.Initialize(settings, performDependencyCheck: HostConfig.CefPerformDependencyCheck, browserProcessHandler: null); m_browser = new ChromiumWebBrowser(Handle, HostConfig.CefStartUrl); m_browser.IsBrowserInitializedChanged += IsBrowserInitializedChanged; m_browser.MenuHandler = new CefSharpContextMenuHandler(); m_browser.RequestHandler = new CefSharpRequestHandler(); RegisterJsHandlers(); base.OnCreate(ref packet); Log.Info("Cef browser successfully created."); }
private void RegisterSchemeHandlers(CefSharpGlobal.CefSettings settings) { // Register scheme handlers IEnumerable <object> schemeHandlerObjs = IoC.GetAllInstances(typeof(ChromelySchemeHandler)); if (schemeHandlerObjs != null) { var schemeHandlers = schemeHandlerObjs.ToList(); foreach (var item in schemeHandlers) { if (item is ChromelySchemeHandler) { ChromelySchemeHandler handler = (ChromelySchemeHandler)item; settings.RegisterScheme(new CefSharpGlobal.CefCustomScheme { SchemeName = handler.SchemeName, DomainName = handler.DomainName, IsSecure = handler.IsSecure, IsCorsEnabled = handler.IsCorsEnabled, SchemeHandlerFactory = (CefSharpGlobal.ISchemeHandlerFactory)handler.HandlerFactory }); } } } }
public CefSharpBrowserHost(ChromelyConfiguration hostConfig) { HostConfig = hostConfig; m_browser = null; m_settings = new CefSharpGlobal.CefSettings(); ServiceAssemblies = new List <Assembly>(); }
/// <summary> /// The update command line args. /// </summary> /// <param name="cefSettings"> /// The cef settings. /// </param> /// <param name="commandLineArgs"> /// The command line args. /// </param> public static void UpdateCommandLineArgs(this CefSharpGlobal.CefSettings cefSettings, Dictionary <string, string> commandLineArgs) { if ((cefSettings == null) || (commandLineArgs == null) || (cefSettings.CefCommandLineArgs == null)) { return; } foreach (var commandArg in commandLineArgs) { cefSettings.CefCommandLineArgs.Add(commandArg.Key, commandArg.Value); } }
public void SettingsUpdateTest() { var hostConfig = this.GetConfigWithDefaultValues(); var settings = new CefSharpGlobal.CefSettings { Locale = hostConfig.Locale, MultiThreadedMessageLoop = false, LogSeverity = (CefSharpGlobal.LogSeverity)hostConfig.LogSeverity, LogFile = hostConfig.LogFile }; // Update configuration settings settings.Update(hostConfig.CustomSettings); Assert.True(settings.MultiThreadedMessageLoop); Assert.True(settings.ExternalMessagePump); Assert.True(settings.WindowlessRenderingEnabled); Assert.True(settings.CommandLineArgsDisabled); Assert.True(settings.PackLoadingDisabled); Assert.True(settings.IgnoreCertificateErrors); Assert.True(settings.FocusedNodeChangedEnabled); Assert.Equal(nameof(CefSettingKeys.BrowserSubprocessPath), settings.BrowserSubprocessPath); Assert.Equal(nameof(CefSettingKeys.CachePath), settings.CachePath); Assert.Equal(nameof(CefSettingKeys.UserDataPath), settings.UserDataPath); Assert.Equal(nameof(CefSettingKeys.UserAgent), settings.UserAgent); Assert.Equal(nameof(CefSettingKeys.ProductVersion), settings.ProductVersion); Assert.Equal(nameof(CefSettingKeys.Locale), settings.Locale); Assert.Equal(nameof(CefSettingKeys.LogFile), settings.LogFile); Assert.Equal(CefSharpGlobal.LogSeverity.Error, (CefSharpGlobal.LogSeverity)settings.LogSeverity); Assert.Equal(nameof(CefSettingKeys.JavaScriptFlags), settings.JavascriptFlags); Assert.Equal(nameof(CefSettingKeys.ResourcesDirPath), settings.ResourcesDirPath); Assert.Equal(nameof(CefSettingKeys.LocalesDirPath), settings.LocalesDirPath); Assert.Equal(nameof(CefSettingKeys.AcceptLanguageList), settings.AcceptLanguageList); Assert.Equal(1025, settings.RemoteDebuggingPort); Assert.Equal(1000, settings.UncaughtExceptionStackSize); }
public static void Update(this CefSharpGlobal.CefSettings cefSettings, Dictionary <string, object> customSettings) { if ((cefSettings == null) && (customSettings == null)) { return; } foreach (var setting in customSettings) { bool boolResult = false; int intResult = 0; string strResult = string.Empty; switch (setting.Key) { // Not supported in CefSharp case CefSettingKeys.SingleProcess: case CefSettingKeys.NoSandbox: break; case CefSettingKeys.BrowserSubprocessPath: if (setting.Value.TryParseString(out strResult)) { cefSettings.BrowserSubprocessPath = strResult; } break; case CefSettingKeys.MultiThreadedMessageLoop: if (setting.Value.TryParseBoolean(out boolResult)) { cefSettings.MultiThreadedMessageLoop = boolResult; } break; case CefSettingKeys.ExternalMessagePump: if (setting.Value.TryParseBoolean(out boolResult)) { cefSettings.ExternalMessagePump = boolResult; } break; case CefSettingKeys.WindowlessRenderingEnabled: if (setting.Value.TryParseBoolean(out boolResult)) { cefSettings.WindowlessRenderingEnabled = boolResult; } break; case CefSettingKeys.CommandLineArgsDisabled: if (setting.Value.TryParseBoolean(out boolResult)) { cefSettings.CommandLineArgsDisabled = boolResult; } break; case CefSettingKeys.CachePath: if (setting.Value.TryParseString(out strResult)) { cefSettings.CachePath = strResult; } break; case CefSettingKeys.UserDataPath: if (setting.Value.TryParseString(out strResult)) { cefSettings.UserDataPath = strResult; } break; case CefSettingKeys.PersistSessionCookies: if (setting.Value.TryParseBoolean(out boolResult)) { cefSettings.PersistSessionCookies = boolResult; } break; case CefSettingKeys.PersistUserPreferences: if (setting.Value.TryParseBoolean(out boolResult)) { cefSettings.PersistUserPreferences = boolResult; } break; case CefSettingKeys.UserAgent: if (setting.Value.TryParseString(out strResult)) { cefSettings.UserAgent = strResult; } break; case CefSettingKeys.ProductVersion: if (setting.Value.TryParseString(out strResult)) { cefSettings.ProductVersion = strResult; } break; case CefSettingKeys.Locale: if (setting.Value.TryParseString(out strResult)) { cefSettings.Locale = strResult; } break; case CefSettingKeys.LogFile: if (setting.Value.TryParseString(out strResult)) { cefSettings.LogFile = strResult; } break; case CefSettingKeys.LogSeverity: if (setting.Value.TryParseInteger(out intResult)) { cefSettings.LogSeverity = (CefSharpGlobal.LogSeverity)intResult; } break; case CefSettingKeys.JavaScriptFlags: if (setting.Value.TryParseString(out strResult)) { cefSettings.JavascriptFlags = strResult; } break; case CefSettingKeys.ResourcesDirPath: if (setting.Value.TryParseString(out strResult)) { cefSettings.ResourcesDirPath = strResult; } break; case CefSettingKeys.LocalesDirPath: if (setting.Value.TryParseString(out strResult)) { cefSettings.LocalesDirPath = strResult; } break; case CefSettingKeys.PackLoadingDisabled: if (setting.Value.TryParseBoolean(out boolResult)) { cefSettings.PackLoadingDisabled = boolResult; } break; case CefSettingKeys.RemoteDebuggingPort: if (setting.Value.TryParseInteger(out intResult)) { cefSettings.RemoteDebuggingPort = intResult; } break; case CefSettingKeys.UncaughtExceptionStackSize: if (setting.Value.TryParseInteger(out intResult)) { cefSettings.UncaughtExceptionStackSize = intResult; } break; case CefSettingKeys.IgnoreCertificateErrors: if (setting.Value.TryParseBoolean(out boolResult)) { cefSettings.IgnoreCertificateErrors = boolResult; } break; // Not supported by CefSharp case CefSettingKeys.EnableNetSecurityExpiration: break; case CefSettingKeys.AcceptLanguageList: if (setting.Value.TryParseString(out strResult)) { cefSettings.AcceptLanguageList = strResult; } break; case CefSettingKeys.FocusedNodeChangedEnabled: if (setting.Value.TryParseBoolean(out boolResult)) { cefSettings.FocusedNodeChangedEnabled = boolResult; } break; } } }