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;
}