コード例 #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 browser = e.Browser;
                var url     = _CfxWebBrowser.Host?.VisibleNavigationEntry?.Url;
                if (!_CfxWebBrowser.IsSame(browser))
                {
                    _Logger.Warning("Closing link browser");
                    browser.Host.CloseBrowser(false);
                }
                FireReload(url ?? request.ReferrerUrl);
                break;
            }
        }
コード例 #2
0
 private StreamResourceInfo GetStreamResourceInfo(Uri uri)
 {
     if (IsPrefetch)
     {
         return(null);
     }
     try
     {
         return(System.Windows.Application.GetResourceStream(uri));
     }
     catch
     {
         _Logger?.Warning(NotFound);
     }
     return(null);
 }