internal static LaunchResult SafeLaunchBrowserOnlyIfPossible(Uri originatingUri, Uri destinationUri, string targetName, bool fIsTopLevel)
        {
            LaunchResult launchResult = LaunchResult.NotLaunched;
            bool         flag         = destinationUri.Scheme == Uri.UriSchemeHttp || destinationUri.Scheme == Uri.UriSchemeHttps || destinationUri.IsFile;
            bool         flag2        = string.Compare(destinationUri.Scheme, Uri.UriSchemeMailto, StringComparison.OrdinalIgnoreCase) == 0;

            if (!BrowserInteropHelper.IsInitialViewerNavigation && SecurityHelper.CallerHasUserInitiatedNavigationPermission() && ((fIsTopLevel && flag) || flag2))
            {
                if (flag)
                {
                    IBrowserCallbackServices browserCallbackServices = (Application.Current != null) ? Application.Current.BrowserCallbackServices : null;
                    if (browserCallbackServices != null)
                    {
                        launchResult = AppSecurityManager.CanNavigateToUrlWithZoneCheck(originatingUri, destinationUri);
                        if (launchResult == LaunchResult.Launched)
                        {
                            browserCallbackServices.DelegateNavigation(BindUriHelper.UriToString(destinationUri), targetName, AppSecurityManager.GetHeaders(destinationUri));
                            launchResult = LaunchResult.Launched;
                        }
                    }
                }
                else if (flag2)
                {
                    UnsafeNativeMethods.ShellExecute(new HandleRef(null, IntPtr.Zero), null, BindUriHelper.UriToString(destinationUri), null, null, 0);
                    launchResult = LaunchResult.Launched;
                }
            }
            return(launchResult);
        }
        internal static int MapUrlToZone(Uri url)
        {
            AppSecurityManager.EnsureSecurityManager();
            int result;

            AppSecurityManager._secMgr.MapUrlToZone(BindUriHelper.UriToString(url), out result, 0);
            return(result);
        }
        internal static void SafeLaunchBrowserDemandWhenUnsafe(Uri originatingUri, Uri destinationUri, bool fIsTopLevel)
        {
            LaunchResult launchResult = AppSecurityManager.SafeLaunchBrowserOnlyIfPossible(originatingUri, destinationUri, fIsTopLevel);

            if (launchResult == LaunchResult.NotLaunched)
            {
                SecurityHelper.DemandUnmanagedCode();
                AppSecurityManager.UnsafeLaunchBrowser(destinationUri, null);
            }
        }
 internal static void UnsafeLaunchBrowser(Uri uri, string targetFrame = null)
 {
     if (Application.Current != null && Application.Current.CheckAccess())
     {
         IBrowserCallbackServices browserCallbackServices = Application.Current.BrowserCallbackServices;
         if (browserCallbackServices != null)
         {
             browserCallbackServices.DelegateNavigation(BindUriHelper.UriToString(uri), targetFrame, AppSecurityManager.GetHeaders(uri));
             return;
         }
     }
     AppSecurityManager.ShellExecuteDefaultBrowser(uri);
 }
 private static LaunchResult CheckBlockNavigation(Uri originatingUri, Uri destinationUri, bool fEnabled)
 {
     if (!fEnabled)
     {
         return(LaunchResult.Launched);
     }
     if (UnsafeNativeMethods.CoInternetIsFeatureZoneElevationEnabled(BindUriHelper.UriToString(originatingUri), BindUriHelper.UriToString(destinationUri), AppSecurityManager._secMgr, 2) == 1)
     {
         return(LaunchResult.Launched);
     }
     if (AppSecurityManager.IsZoneElevationSettingPrompt(destinationUri))
     {
         return(LaunchResult.NotLaunchedDueToPrompt);
     }
     return(LaunchResult.NotLaunched);
 }
        private static LaunchResult CanNavigateToUrlWithZoneCheck(Uri originatingUri, Uri destinationUri)
        {
            AppSecurityManager.EnsureSecurityManager();
            bool flag = UnsafeNativeMethods.CoInternetIsFeatureEnabled(1, 2) != 1;
            int  num  = AppSecurityManager.MapUrlToZone(destinationUri);
            Uri  uri  = null;

            if (Application.Current.MimeType != MimeType.Document)
            {
                uri = BrowserInteropHelper.Source;
            }
            else if (destinationUri.IsFile && Path.GetExtension(destinationUri.LocalPath).Equals(DocumentStream.XpsFileExtension, StringComparison.OrdinalIgnoreCase))
            {
                num = 3;
            }
            int num2;

            if (uri != null)
            {
                num2 = AppSecurityManager.MapUrlToZone(uri);
            }
            else
            {
                bool flag2 = SecurityHelper.CheckUnmanagedCodePermission();
                if (flag2)
                {
                    return(LaunchResult.Launched);
                }
                num2 = 3;
                uri  = originatingUri;
            }
            if ((!flag && ((num2 != 3 && num2 != 4) || num != 0)) || (flag && (num2 == num || (num2 <= 4 && num <= 4 && (num2 < num || ((num2 == 2 || num2 == 1) && (num == 2 || num == 1)))))))
            {
                return(LaunchResult.Launched);
            }
            return(AppSecurityManager.CheckBlockNavigation(uri, destinationUri, flag));
        }
 // Token: 0x060078AD RID: 30893 RVA: 0x0022606C File Offset: 0x0022426C
 internal static LaunchResult SafeLaunchBrowserOnlyIfPossible(Uri originatingUri, Uri destinationUri, bool fIsTopLevel)
 {
     return(AppSecurityManager.SafeLaunchBrowserOnlyIfPossible(originatingUri, destinationUri, null, fIsTopLevel));
 }