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();
        }
Exemple #2
0
 private void requestLogger()
 {
     // Fixes invalid certificate.
     CertOverrideService.GetService().ValidityOverride += geckoWebBrowser_ValidityOverride;
     FiddlerApplication.BeforeRequest += FiddlerApplication_BeforeRequest;
     FiddlerApplication.Startup(8764, false, true);
 }
Exemple #3
0
        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;
            };
        }
Exemple #4
0
        public LoginForm(List <CookieModel> cookieModels)
        {
            Cookies = cookieModels;

            InitializeComponent();

            MoocWebBrowser.Navigate("https://www.icourse163.org/");

            MoocWebBrowser.DocumentCompleted += MoocWebBrowser_DocumentCompleted;
            CertOverrideService.GetService().ValidityOverride += LoginForm_ValidityOverride;
        }
Exemple #5
0
        //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);
        }