public Login(string Target) { InitializeComponent(); _target = Target; Xpcom.Initialize("Firefox"); GeckoPreferences.User["plugin.state.flash"] = true; GeckoPreferences.User["browser.xul.error_pages.enabled"] = true; GeckoPreferences.User["media.navigator.enabled"] = true; GeckoPreferences.User["media.navigator.permission.disabled"] = true; Navegador.NSSError += (object sender, Gecko.Events.GeckoNSSErrorEventArgs e) => { if (e.Message.Contains("Certificate")) { #pragma warning disable CS0618 // O tipo ou membro é obsoleto CertOverrideService.GetService().RememberRecentBadCert(e.Uri, e.SSLStatus); #pragma warning restore CS0618 // O tipo ou membro é obsoleto Navegador.Navigate(e.Uri.AbsoluteUri); e.Handled = true; } }; Navegador.Navigated += Navegador_Navigated; Navegador.Navigate(_target); Refresh(); }
private void requestLogger() { // Fixes invalid certificate. CertOverrideService.GetService().ValidityOverride += geckoWebBrowser_ValidityOverride; FiddlerApplication.BeforeRequest += FiddlerApplication_BeforeRequest; FiddlerApplication.Startup(8764, false, true); }
public static void Initialize() { //Отключаем контейнер плагинов Environment.SetEnvironmentVariable("MOZ_DISABLE_OOP_PLUGINS", "1", EnvironmentVariableTarget.Process); //Запускаем XULRunner Xpcom.Initialize("xulrunner-33.0.en-US.win32"); //This setting enables the dump function, which sends messages to the system console. //Set it to true to enable it, or false to disable it. GeckoPreferences.User["browser.dom.window.dump.enabled"] = false; //A boolean value that indicates whether or not an alert should be shown when downloads complete. GeckoPreferences.User["browser.download.manager.showAlertOnComplete"] = false; //-45 //A boolean value that indicates whether or not to delete the temporary file used //by the Download Manager after the download is complete. GeckoPreferences.User["browser.helperApps.deleteTempFileOnExit"] = true; //By disabling the navigator permission, it automatically accepts the request, without poping up the dialog. GeckoPreferences.User["media.navigator.enabled"] = true; GeckoPreferences.User["media.navigator.permission.disabled"] = true; //true - Show an error page for pages that couldn't be loaded. (Default) //false - Display an alert when a page can't be loaded and remain on the previous page. GeckoPreferences.User["browser.xul.error_pages.enabled"] = true; //Включить все плагины по-умолчанию и без вопроса об активации GeckoPreferences.User["plugin.state.flash"] = 2; //Запретить цепляние плагинов из HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins //Также есть некоторые плагины, которые Firefox проверяет независимо от этой ветки. GeckoPreferences.User["plugin.scan.plid.all"] = false; GeckoPreferences.User["plugin.scan.Acrobat"] = "999.0"; GeckoPreferences.User["plugin.scan.SunJRE"] = "999.0"; GeckoPreferences.User["plugin.scan.Quicktime"] = "999.0"; GeckoPreferences.User["plugin.scan.WindowsMediaPlayer"] = "999.0"; //CSS Font Loading (для нормального отображения шрифтов в pdf.js) GeckoPreferences.User["layout.css.font-loading-api.enabled"] = false; //Разрешаем все плагины GeckoPreferences.Default["extensions.blocklist.enabled"] = false; GeckoPreferences.User["browser.download.manager.folderList"] = 0; GeckoPreferences.User["browser.download.manager.showWhenStarting"] = true; GeckoPreferences.User["browser.download.manager.useWindow"] = true; GeckoPreferences.User["browser.download.manager.openDelay"] = 0; //Useragent GeckoPreferences.User["general.useragent.override"] = "Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20130405 Firefox/22.0"; //Разрешаем использование невалидных сертификатор CertOverrideService.GetService().ValidityOverride += (s, e) => { e.OverrideResult = CertOverride.Mismatch | CertOverride.Time | CertOverride.Untrusted; e.Temporary = true; e.Handled = true; }; }
public LoginForm(List <CookieModel> cookieModels) { Cookies = cookieModels; InitializeComponent(); MoocWebBrowser.Navigate("https://www.icourse163.org/"); MoocWebBrowser.DocumentCompleted += MoocWebBrowser_DocumentCompleted; CertOverrideService.GetService().ValidityOverride += LoginForm_ValidityOverride; }
//Refernce: https://bitbucket.org/geckofx/geckofx-33.0/issues/90/invalid-security-certificate-error-on internal static void GeckoBrowser_NSSError(object sender, GeckoNSSErrorEventArgs e) { /* some messages say "Certificate", some say "certificate" * I'm guessing that this is going to be a localization issue... * Log a message so we can try to find a better solution if problems are reported in the future... */ if (!e.Message.ToLower().Contains("certificate")) { Runtime.MessageCollector.AddMessage(MessageClass.WarningMsg, $"Unhandled NSSError: {e.Message}"); e.Handled = false; return; } string[] commandButtons = { Language.strHttpsInsecureAllowOnce, // 0 Language.strHttpsInsecureAllowAlways, // 1 Language.strHttpsInsecureDontAllow // 2 }; CTaskDialog.ShowTaskDialogBox(null, GeneralAppInfo.ProductName, Language.strHttpsInsecurePromptTitle, string.Format(Language.strHttpsInsecurePrompt, e.Uri.AbsoluteUri), "", "", "", "", string.Join(" | ", commandButtons), ETaskDialogButtons.None, ESysIcons.Question, ESysIcons.Question); var allow = false; var temporary = true; // ReSharper disable once SwitchStatementMissingSomeCases switch (CTaskDialog.CommandButtonResult) { case 0: allow = true; temporary = true; break; case 1: allow = true; temporary = false; break; case 2: allow = false; temporary = true; // just to be safe break; } if (!allow) { Runtime.MessageCollector.AddMessage(MessageClass.WarningMsg, $"User did not allow navigation to {e.Uri.AbsoluteUri} with an insecure certificate: {e.Message}"); return; } /* "temporary == false" (aka always) might not work: * https://bitbucket.org/geckofx/geckofx-45.0/issues/152/remembervalidityoverride-doesnt-save-in * However, my testing was successful in Gecko 45.0.22 */ CertOverrideService.GetService().RememberValidityOverride(e.Uri, e.Certificate, CertOverride.Mismatch | CertOverride.Time | CertOverride.Untrusted, temporary); e.Handled = true; ((GeckoWebBrowser)sender).Navigate(e.Uri.AbsoluteUri); }