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