private void DeleteCookies() { var callback = new TaskDeleteCookiesCallback(); callback.Task.ContinueWith(task => { if (!task.IsCompleted || task.Result == TaskDeleteCookiesCallback.InvalidNoOfCookiesDeleted) { logger.Warn("Failed to delete cookies!"); } else { logger.Debug($"Deleted {task.Result} cookies."); } }); if (Cef.GetGlobalCookieManager().DeleteCookies(callback: callback)) { logger.Debug("Successfully initiated cookie deletion."); } else { logger.Warn("Failed to initiate cookie deletion!"); } }
public FactoryResult TryCreate(WhitelistApplication settings, out IApplication application) { var name = $"'{settings.DisplayName}' ({ settings.ExecutableName})"; application = default(IApplication); try { var success = TryFindApplication(settings, out var executablePath); if (success) { application = BuildApplication(executablePath, settings); application.Initialize(); logger.Debug($"Successfully initialized application {name}."); return(FactoryResult.Success); } logger.Error($"Could not find application {name}!"); return(FactoryResult.NotFound); } catch (Exception e) { logger.Error($"Unexpected error while trying to initialize application {name}!", e); } return(FactoryResult.Error); }
private CefSettings InitializeCefSettings() { var warning = logger.LogLevel == LogLevel.Warning; var error = logger.LogLevel == LogLevel.Error; var cefSettings = new CefSettings { CachePath = appConfig.BrowserCachePath, LogFile = appConfig.BrowserLogFilePath, LogSeverity = error ? LogSeverity.Error : (warning ? LogSeverity.Warning : LogSeverity.Info), UserAgent = InitializeUserAgent() }; cefSettings.CefCommandLineArgs.Add("touch-events", "enabled"); logger.Debug($"Cache path: {cefSettings.CachePath}"); logger.Debug($"Engine version: Chromium {Cef.ChromiumVersion}, CEF {Cef.CefVersion}, CefSharp {Cef.CefSharpVersion}"); logger.Debug($"Log file: {cefSettings.LogFile}"); logger.Debug($"Log severity: {cefSettings.LogSeverity}"); return(cefSettings); }
private List <IFeatureConfiguration> LoadFromFile() { var configurations = new List <IFeatureConfiguration>(); try { if (File.Exists(filePath)) { var context = new StreamingContext(StreamingContextStates.All, logger); logger.Debug($"Attempting to load backup data from '{filePath}'..."); using (var stream = File.Open(filePath, FileMode.Open)) { configurations = (List <IFeatureConfiguration>) new BinaryFormatter(null, context).Deserialize(stream); } logger.Debug($"Backup data successfully loaded, found {configurations.Count} items."); } else { logger.Debug($"No backup data found under '{filePath}'."); } } catch (Exception e) { logger.Error($"Failed to load backup data from '{filePath}'!", e); } return(configurations); }
private void InitializeRequestFilter(IRequestFilter requestFilter) { var factory = new RuleFactory(); foreach (var item in appSettings.AllowedUrlRegexps) { var rule = factory.CreateRule(FilterRuleType.Regex); rule.Initialize(new FilterRuleSettings { Expression = item, Result = FilterResult.Allow }); requestFilter.Load(rule); } foreach (var item in appSettings.AllowedUrls) { var rule = factory.CreateRule(FilterRuleType.Simplified); rule.Initialize(new FilterRuleSettings { Expression = item, Result = FilterResult.Allow }); requestFilter.Load(rule); } if (requestFilter.Process(new Request { Url = startUrl }) != FilterResult.Allow) { var rule = factory.CreateRule(FilterRuleType.Simplified); rule.Initialize(new FilterRuleSettings { Expression = startUrl, Result = FilterResult.Allow }); requestFilter.Load(rule); logger.Debug($"Automatically created filter rule to allow start URL '{startUrl}'."); } }
private void InitializeControl() { var contextMenuHandler = new ContextMenuHandler(); var dialogHandler = new DialogHandler(); var displayHandler = new DisplayHandler(); var downloadLogger = logger.CloneFor($"{nameof(DownloadHandler)} #{Id}"); var downloadHandler = new DownloadHandler(appConfig, downloadLogger, settings, WindowSettings); var keyboardHandler = new KeyboardHandler(); var lifeSpanHandler = new LifeSpanHandler(); var requestFilter = new RequestFilter(); var requestLogger = logger.CloneFor($"{nameof(RequestHandler)} #{Id}"); var resourceHandler = new ResourceHandler(appConfig, requestFilter, logger, settings, WindowSettings, text); var requestHandler = new RequestHandler(appConfig, requestFilter, requestLogger, resourceHandler, settings, WindowSettings, text); Icon = new BrowserIconResource(); dialogHandler.DialogRequested += DialogHandler_DialogRequested; displayHandler.FaviconChanged += DisplayHandler_FaviconChanged; displayHandler.ProgressChanged += DisplayHandler_ProgressChanged; downloadHandler.ConfigurationDownloadRequested += DownloadHandler_ConfigurationDownloadRequested; downloadHandler.DownloadUpdated += DownloadHandler_DownloadUpdated; keyboardHandler.FindRequested += KeyboardHandler_FindRequested; keyboardHandler.HomeNavigationRequested += HomeNavigationRequested; keyboardHandler.ReloadRequested += ReloadRequested; keyboardHandler.ZoomInRequested += ZoomInRequested; keyboardHandler.ZoomOutRequested += ZoomOutRequested; keyboardHandler.ZoomResetRequested += ZoomResetRequested; lifeSpanHandler.PopupRequested += LifeSpanHandler_PopupRequested; resourceHandler.SessionIdentifierDetected += (id) => SessionIdentifierDetected?.Invoke(id); requestHandler.QuitUrlVisited += RequestHandler_QuitUrlVisited; requestHandler.RequestBlocked += RequestHandler_RequestBlocked; InitializeRequestFilter(requestFilter); control = new BrowserControl( contextMenuHandler, dialogHandler, displayHandler, downloadHandler, keyboardHandler, lifeSpanHandler, requestHandler, startUrl); control.AddressChanged += Control_AddressChanged; control.LoadFailed += Control_LoadFailed; control.LoadingStateChanged += Control_LoadingStateChanged; control.TitleChanged += Control_TitleChanged; control.Initialize(); logger.Debug("Initialized browser control."); }
internal void Initialize() { var contextMenuHandler = new ContextMenuHandler(); var displayHandler = new DisplayHandler(); var downloadLogger = logger.CloneFor($"{nameof(DownloadHandler)} {Id}"); var downloadHandler = new DownloadHandler(appConfig, settings, downloadLogger); var keyboardHandler = new KeyboardHandler(); var lifeSpanHandler = new LifeSpanHandler(); var requestHandler = new RequestHandler(appConfig); displayHandler.FaviconChanged += DisplayHandler_FaviconChanged; displayHandler.ProgressChanged += DisplayHandler_ProgressChanged; downloadHandler.ConfigurationDownloadRequested += DownloadHandler_ConfigurationDownloadRequested; keyboardHandler.ReloadRequested += ReloadRequested; keyboardHandler.ZoomInRequested += ZoomInRequested; keyboardHandler.ZoomOutRequested += ZoomOutRequested; keyboardHandler.ZoomResetRequested += ZoomResetRequested; lifeSpanHandler.PopupRequested += LifeSpanHandler_PopupRequested; control = new BrowserControl(contextMenuHandler, displayHandler, downloadHandler, keyboardHandler, lifeSpanHandler, requestHandler, url); control.AddressChanged += Control_AddressChanged; control.LoadingStateChanged += Control_LoadingStateChanged; control.TitleChanged += Control_TitleChanged; control.Initialize(); logger.Debug("Initialized browser control."); window = uiFactory.CreateBrowserWindow(control, settings, isMainInstance); window.Closing += () => Terminated?.Invoke(Id); window.AddressChanged += Window_AddressChanged; window.BackwardNavigationRequested += Window_BackwardNavigationRequested; window.DeveloperConsoleRequested += Window_DeveloperConsoleRequested; window.ForwardNavigationRequested += Window_ForwardNavigationRequested; window.ReloadRequested += ReloadRequested; window.ZoomInRequested += ZoomInRequested; window.ZoomOutRequested += ZoomOutRequested; window.ZoomResetRequested += ZoomResetRequested; window.UpdateZoomLevel(CalculateZoomPercentage()); logger.Debug("Initialized browser window."); }
private void InitializeControl() { var contextMenuHandler = new ContextMenuHandler(); var displayHandler = new DisplayHandler(); var downloadLogger = logger.CloneFor($"{nameof(DownloadHandler)} {Id}"); var downloadHandler = new DownloadHandler(appConfig, settings, downloadLogger); var keyboardHandler = new KeyboardHandler(); var lifeSpanHandler = new LifeSpanHandler(); var requestFilter = new RequestFilter(); var requestLogger = logger.CloneFor($"{nameof(RequestHandler)} {Id}"); var requestHandler = new RequestHandler(appConfig, settings.Filter, requestFilter, requestLogger, text); displayHandler.FaviconChanged += DisplayHandler_FaviconChanged; displayHandler.ProgressChanged += DisplayHandler_ProgressChanged; downloadHandler.ConfigurationDownloadRequested += DownloadHandler_ConfigurationDownloadRequested; keyboardHandler.ReloadRequested += ReloadRequested; keyboardHandler.ZoomInRequested += ZoomInRequested; keyboardHandler.ZoomOutRequested += ZoomOutRequested; keyboardHandler.ZoomResetRequested += ZoomResetRequested; lifeSpanHandler.PopupRequested += LifeSpanHandler_PopupRequested; requestHandler.RequestBlocked += RequestHandler_RequestBlocked; if (settings.Filter.ProcessContentRequests || settings.Filter.ProcessMainRequests) { var factory = new RuleFactory(); foreach (var settings in settings.Filter.Rules) { var rule = factory.CreateRule(settings.Type); rule.Initialize(settings); requestFilter.Load(rule); } logger.Debug($"Initialized request filter with {settings.Filter.Rules.Count} rule(s)."); } control = new BrowserControl(contextMenuHandler, displayHandler, downloadHandler, keyboardHandler, lifeSpanHandler, requestHandler, url); control.AddressChanged += Control_AddressChanged; control.LoadingStateChanged += Control_LoadingStateChanged; control.TitleChanged += Control_TitleChanged; control.Initialize(); logger.Debug("Initialized browser control."); }