コード例 #1
0
        private void RequestHandler_OnBeforeBrowse(object sender, CfxOnBeforeBrowseEventArgs e)
        {
            if (!e.Frame.IsMain)
            {
                return;
            }

            var request = e.Request;

            switch (request.TransitionType)
            {
            case CfxTransitionType.Explicit:
                return;

            case CfxTransitionType.ClientRedirectFlag:
                e.SetReturnValue(true);
                FireReload();
                break;

            default:
                _Logger.Error($@"Navigation to {request.Url} triggered by ""{request.TransitionType}"" has been cancelled. It is not possible to trigger a page loading from javascript that may corrupt session and hot-reload. Use Neutronium API to alter HTML view.");
                e.SetReturnValue(true);
                var url = _CfxWebBrowser.Host?.VisibleNavigationEntry?.Url;
                FireReload(url ?? request.ReferrerUrl);
                break;
            }
        }
コード例 #2
0
        private void RequestHandler_OnBeforeBrowse(object sender, CfxOnBeforeBrowseEventArgs e)
        {
            if (!e.Frame.IsMain)
            {
                return;
            }

            var request = e.Request;

            switch (request.TransitionType)
            {
            case CfxTransitionType.Explicit:
                return;

            case CfxTransitionType.ClientRedirectFlag:
                e.SetReturnValue(true);
                _Dispatcher.Dispatch(() => OnClientReload?.Invoke(this, new ClientReloadArgs(request.Url)));
                break;

            default:
                e.SetReturnValue(true);
                _Logger.Error($@"Navigation to {request.Url} triggered by ""{request.TransitionType}"" has been cancelled. It is not possible to trigger a page loading from javascript that may corrupt session and hot-reload. Use Neutronium API to alter HTML view.");
                break;
            }
        }
コード例 #3
0
        private void HandleOnBeforeBrowse(object sender, CfxOnBeforeBrowseEventArgs e)
        {
            if (UrlFilters == null)
            {
                e.SetReturnValue(false);
                return;
            }

            switch (BrowserSettings.UrlFilterMode)
            {
            case UrlFilterMode.None:
                e.SetReturnValue(false);
                return;

            case UrlFilterMode.BlacklistMatch:
                e.SetReturnValue(UrlFilters.Any(f => e.Browser.MainFrame.Url.Equals(f, StringComparison.InvariantCultureIgnoreCase)));
                return;

            case UrlFilterMode.WhitelistMatch:
                e.SetReturnValue(!UrlFilters.Any(f => e.Browser.MainFrame.Url.Equals(f, StringComparison.InvariantCultureIgnoreCase)));
                return;

            case UrlFilterMode.BlacklistContains:
                e.SetReturnValue(UrlFilters.Any(f => e.Browser.MainFrame.Url.Contains(f, StringComparison.InvariantCultureIgnoreCase)));
                return;

            case UrlFilterMode.WhitelistContains:
                e.SetReturnValue(!UrlFilters.Any(f => e.Browser.MainFrame.Url.Contains(f, StringComparison.InvariantCultureIgnoreCase)));
                return;

            case UrlFilterMode.BlacklistRegex:
                var blregex = UrlFilters.Any(f => Regex.IsMatch(e.Browser.MainFrame.Url, f, RegexOptions.IgnoreCase | RegexOptions.CultureInvariant | RegexOptions.Singleline));
                e.SetReturnValue(blregex);
                return;

            case UrlFilterMode.WhitelistRegex:
                var wlregex = UrlFilters.Any(f => Regex.IsMatch(e.Browser.MainFrame.Url, f, RegexOptions.IgnoreCase | RegexOptions.CultureInvariant | RegexOptions.Singleline));
                e.SetReturnValue(!wlregex);
                return;
            }

            //e.SetReturnValue(false);
        }