public FrameworkElement Initialize() { if (!Cef.IsInitialized) { var path = PluginsManager.Instance.GetPluginDirectory("CefSharp"); var settings = new CefSettings { UserAgent = DefaultUserAgent, MultiThreadedMessageLoop = true, LogSeverity = LogSeverity.Disable, CachePath = FilesStorage.Instance.GetTemporaryFilename(@"Cef"), UserDataPath = FilesStorage.Instance.GetTemporaryFilename(@"Cef"), BrowserSubprocessPath = Path.Combine(path, "CefSharp.BrowserSubprocess.exe"), LocalesDirPath = Path.Combine(path, "locales"), ResourcesDirPath = Path.Combine(path), Locale = SettingsHolder.Locale.LocaleName, #if DEBUG RemoteDebuggingPort = 45451, #endif }; settings.RegisterScheme(new CefCustomScheme { SchemeName = AltFilesHandlerFactory.SchemeName, SchemeHandlerFactory = new AltFilesHandlerFactory() }); Cef.Initialize(settings, false, null); } _requestHandler = new RequestHandler { UserAgent = DefaultUserAgent }; _inner = new ChromiumWebBrowser { BrowserSettings = { FileAccessFromFileUrls = CefState.Enabled, UniversalAccessFromFileUrls = CefState.Enabled, WebSecurity = CefState.Disabled }, RequestHandler = _requestHandler, MenuHandler = new MenuHandler() }; _inner.FrameLoadStart += OnFrameLoadStart; _inner.FrameLoadEnd += OnFrameLoadEnd; return _inner; }