private async Task NavigateAndCheck(CancellationToken stop) { _navigationStart = DateTime.UtcNow; var headers = new List <KeyValuePair <string, string> >() { new KeyValuePair <string, string>("User-Agent", "NHM/" + System.Windows.Forms.Application.ProductVersion), new KeyValuePair <string, string>("Cache-Control", "no-store, no-cache, must-revalidate, max-age=0"), }; WebViewBrowser.NavigationCompleted += Browser_NavigationCompleted; WebViewBrowser.Navigate(new Uri(Links.LoginNHM), HttpMethod.Get, null, headers); Func <bool> isActive = () => !stop.IsCancellationRequested; while (isActive()) { await TaskHelpers.TryDelay(TimeSpan.FromSeconds(1), stop); var ok = await CheckForBtc(); if (!ok.HasValue) { continue; } LoginSuccess = ok; Hide(); return; } }
private void NavigateTo(string url) { var headers = new List <KeyValuePair <string, string> >() { new KeyValuePair <string, string>("User-Agent", _userAgent), new KeyValuePair <string, string>("Cache-Control", "no-store, no-cache, must-revalidate, max-age=0"), }; WebViewBrowser.Navigate(new Uri(url), HttpMethod.Get, null, headers); }
private void LoginBrowser_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e) { var oldIsVisible = e.OldValue as bool?; var wasVisible = oldIsVisible.HasValue && oldIsVisible.Value; var wasInvisible = oldIsVisible.HasValue && !oldIsVisible.Value; if (wasVisible) { CancelNavigateAndCheck(); LoadingPanel.Visibility = Visibility.Visible; WebViewGrid.Visibility = Visibility.Collapsed; WebViewBrowser.Navigate("about:blank"); } else if (wasInvisible) { Logger.Info("LoginBrowser", $"LoginBrowser_IsVisibleChanged e.OldValue={e.OldValue}; e.NewValue={e.NewValue}"); _ = StartNavigateAndCheck(); } else { Logger.Error("LoginBrowser", "Unexpected case"); } }