void WebBrowserV1_NewWindow(string url, int flags, string targetFrameName, ref object postData, string headers, ref bool processed) { var e = new WebViewNewWindowEventArgs(new Uri(url), targetFrameName); Callback.OnOpenNewWindow(Widget, e); processed = e.Cancel; }
void WebBrowserV1_NewWindow(string URL, int Flags, string TargetFrameName, ref object PostData, string Headers, ref bool Processed) { var e = new WebViewNewWindowEventArgs(new Uri(URL), TargetFrameName); Widget.OnOpenNewWindow(e); Processed = e.Cancel; }
private void WebViewHandler_DecidePolicy(object o, GLib.SignalArgs args) { var decision = (GLib.Object)args.Args[0]; var type = (int)args.Args[1]; if (type != 0 && type != 1) { return; } var request = NativeMethods.webkit_navigation_policy_decision_get_request(decision.Handle); var uri = new Uri(NativeMethods.webkit_uri_request_get_uri(request)); switch (type) { case 0: // WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION var loadingArgs = new WebViewLoadingEventArgs(uri, true); documentLoading?.Invoke(this, loadingArgs); args.RetVal = loadingArgs.Cancel; break; case 1: // WEBKIT_POLICY_DECISION_TYPE_NEW_WINDOW_ACTION var newWindowArgs = new WebViewNewWindowEventArgs(uri, ""); openNewWindow?.Invoke(this, newWindowArgs); args.RetVal = newWindowArgs.Cancel; break; } }
public void HandleNewWindowPolicyDecisionRequested(object sender, NewWindowPolicyDecisionRequestedArgs args) { var handler = Handler; var e = new WebViewNewWindowEventArgs(new Uri(args.Request.Uri), args.Frame.Name); handler.Callback.OnOpenNewWindow(handler.Widget, e); #if GTK2 if (e.Cancel) { args.Decision.Ignore(); } else { args.Decision.Use(); } #else if (e.Cancel) { args.PolicyDecision.Ignore(); } else { args.PolicyDecision.Use(); } #endif args.RetVal = true; }
public void HandleNewWindowPolicyDecisionRequested(object sender, NewWindowPolicyDecisionRequestedArgs args) { var handler = Handler; var e = new WebViewNewWindowEventArgs(new Uri(args.Request.Uri), args.Frame.Name); handler.Callback.OnOpenNewWindow(handler.Widget, e); #if GTK2 var decision = args.Decision; #else var decision = args.PolicyDecision; #endif if (decision != null) { if (e.Cancel) { decision.Ignore(); } else { decision.Use(); Application.Instance.Open(args.Request.Uri); } } args.RetVal = true; }
private void CoreWebView2_NewWindowRequested(object sender, CoreWebView2NewWindowRequestedEventArgs e) { var args = new WebViewNewWindowEventArgs(new Uri(e.Uri), null); Callback.OnOpenNewWindow(Widget, args); e.Handled = args.Cancel; }
void WebEvents_NewWindow(string url, int flags, string targetFrameName, ref object postData, string headers, ref bool processed) { var args = new WebViewNewWindowEventArgs(new Uri(url), targetFrameName); Widget.OnOpenNewWindow(args); processed = args.Cancel; }
public override void AttachEvent(string handler) { switch (handler) { case WebView.DocumentLoadedEvent: this.Control.FinishedLoad += delegate(object sender, MonoMac.WebKit.WebFrameEventArgs e) { Widget.OnDocumentLoaded(new WebViewLoadedEventArgs(this.Url)); }; break; case WebView.DocumentLoadingEvent: this.Control.DecidePolicyForNavigation += (sender, e) => { var args = new WebViewLoadingEventArgs(new Uri(e.Request.Url.AbsoluteString), e.Frame == Control.MainFrame); Widget.OnDocumentLoading(args); if (args.Cancel) { e.DecisionToken.PerformSelector(new Selector("ignore"), null, 0); } else { e.DecisionToken.PerformSelector(new Selector("use"), null, 0); } }; break; case WebView.OpenNewWindowEvent: this.Control.UICreateWebView = new MonoMac.WebKit.CreateWebViewFromRequest((sender, e) => { newWindowHandler = new NewWindowHandler { Handler = this }; return(newWindowHandler.WebView); }); this.Control.DecidePolicyForNewWindow += (sender, e) => { var args = new WebViewNewWindowEventArgs(new Uri(e.Request.Url.AbsoluteString), e.NewFrameName); Widget.OnOpenNewWindow(args); if (!args.Cancel) { NSWorkspace.SharedWorkspace.OpenUrl(e.Request.Url); } e.DecisionToken.PerformSelector(new Selector("ignore"), null, 0); }; break; case WebView.DocumentTitleChangedEvent: this.Control.ReceivedTitle += delegate(object sender, MonoMac.WebKit.WebFrameTitleEventArgs e) { Widget.OnDocumentTitleChanged(new WebViewTitleEventArgs(e.Title)); }; break; default: base.AttachEvent(handler); break; } }
private void TwitchOnOpenNewWindow(object sender, WebViewNewWindowEventArgs e) { if (Platform.IsGtk) //Linux needs xdg-open { Process.Start("xdg-open", e.Uri.ToString()); } if (Platform.IsWpf || Platform.IsWinForms) //Windows will just use whatever is configured as default! { Process.Start(e.Uri.ToString()); } }
public void DecidePolicyForNavigation(wk.WebView webView, NSDictionary action, NSUrlRequest request, wk.WebFrame frame, NSObject listener) { var url = action.ObjectForKey(new NSString("WebActionOriginalURLKey")) as NSUrl; var args = new WebViewNewWindowEventArgs(new Uri(url.AbsoluteString), frame.Name); Handler.Widget.OnOpenNewWindow(args); if (!args.Cancel) { NSWorkspace.SharedWorkspace.OpenUrl(url); } listener.PerformSelector(selIgnore, null, 0); }
public bool OnBeforePopup(CefSharp.IWebBrowser browser, string url, ref int x, ref int y, ref int width, ref int height) { var uri = new Uri(url); if (uri.Scheme != "chrome-devtools") { var args = new WebViewNewWindowEventArgs(uri, null); Widget.OnOpenNewWindow(args); return(args.Cancel); } return(false); }
public override void AttachEvent(string handler) { switch (handler) { case WebView.DocumentLoadedEvent: Control.LoadingStateChanged += (sender, e) => { if (!Control.Browser.IsLoading) { Control.Dispatcher.BeginInvoke(new Action(() => { Widget.OnDocumentLoaded(new WebViewLoadedEventArgs(this.Url)); })); } }; break; case WebView.DocumentLoadingEvent: Control.BeforeNavigation += (sender, e) => { var args = new WebViewLoadingEventArgs(new Uri(e.Request.Url), e.Frame.IsMain); Widget.OnDocumentLoading(args); e.Cancel = args.Cancel; }; break; case WebView.OpenNewWindowEvent: Control.BeforePopup += (sender, e) => { var uri = new Uri(e.TargetUrl); if (uri.Scheme != "chrome-devtools") { var args = new WebViewNewWindowEventArgs(uri, null); Widget.OnOpenNewWindow(args); e.Cancel = args.Cancel; } }; break; case WebView.DocumentTitleChangedEvent: Control.TitleChanged += (sender, e) => { Control.Dispatcher.BeginInvoke(new Action(() => { Widget.OnDocumentTitleChanged(new WebViewTitleEventArgs(Control.Title)); })); }; break; default: base.AttachEvent(handler); break; } }
static void HandleDecidePolicyForNewWindow(object sender, wk.WebNewWindowPolicyEventArgs e) { var handler = GetHandler(sender) as WebViewHandler; if (handler != null) { var args = new WebViewNewWindowEventArgs(new Uri(e.Request.Url.AbsoluteString), e.NewFrameName); handler.Widget.OnOpenNewWindow(args); if (!args.Cancel) { NSWorkspace.SharedWorkspace.OpenUrl(e.Request.Url); } e.DecisionToken.PerformSelector(selIgnore, null, 0); } }
public override void AttachEvent(string handler) { switch (handler) { case WebView.DocumentLoadedEvent: Control.LoadingFrameComplete += (sender, e) => { Control.Dispatcher.BeginInvoke(new Action(() => { Widget.OnDocumentLoaded(new WebViewLoadedEventArgs(this.Url)); })); }; break; case WebView.DocumentLoadingEvent: Control.BeginNavigation += (sender, e) => { // this doesn't actually work, but is needed for our use! //Control.LoadingFrame += (sender, e) => { var args = new WebViewLoadingEventArgs(e.Url, true); Widget.OnDocumentLoading(args); if (args.Cancel) { Control.Stop(); // does not work!! } }; break; case WebView.OpenNewWindowEvent: Control.ShowCreatedWebView += (sender, e) => { var args = new WebViewNewWindowEventArgs(e.TargetURL, null); Widget.OnOpenNewWindow(args); e.Cancel = args.Cancel; }; break; case WebView.DocumentTitleChangedEvent: Control.TitleChanged += (sender, e) => { Control.Dispatcher.BeginInvoke(new Action(() => { Widget.OnDocumentTitleChanged(new WebViewTitleEventArgs(e.Title)); })); }; break; default: base.AttachEvent(handler); break; } }
private static void Browser_OpenNewWindow(object sender, WebViewNewWindowEventArgs e) { e.Cancel = true; }
public override void AttachEvent(string handler) { switch (handler) { case WebView.DocumentLoadedEvent: Control.LoadFinished += delegate(object o, WebKit.LoadFinishedArgs args) { Widget.OnDocumentLoaded(new WebViewLoadedEventArgs(args.Frame.Uri != null ? new Uri(args.Frame.Uri) : null)); }; break; case WebView.DocumentLoadingEvent: Control.NavigationRequested += delegate(object o, WebKit.NavigationRequestedArgs args) { if (args.Request.Uri.StartsWith(EtoReturnPrefix)) { // pass back the response to ExecuteScript() this.scriptReturnValue = HttpUtility.UrlDecode(args.Request.Uri.Substring(EtoReturnPrefix.Length)); returnResetEvent.Set(); args.RetVal = WebKit.NavigationResponse.Ignore; } else { var e = new WebViewLoadingEventArgs(new Uri(args.Request.Uri), false); Widget.OnDocumentLoading(e); if (e.Cancel) { args.RetVal = WebKit.NavigationResponse.Ignore; } else { args.RetVal = WebKit.NavigationResponse.Accept; } } }; break; case WebView.OpenNewWindowEvent: // note: requires libwebkitgtk 1.1.4+ Control.NewWindowPolicyDecisionRequested += (sender, args) => { var e = new WebViewNewWindowEventArgs(new Uri(args.Request.Uri), args.Frame.Name); Widget.OnOpenNewWindow(e); if (e.Cancel) { args.Decision.Ignore(); } else { args.Decision.Use(); } args.RetVal = true; }; break; case WebView.DocumentTitleChangedEvent: Control.TitleChanged += delegate(object o, WebKit.TitleChangedArgs args) { Widget.OnDocumentTitleChanged(new WebViewTitleEventArgs(args.Title)); }; break; default: base.AttachEvent(handler); break; } }
void HandleOpenNewWindow(object sender, WebViewNewWindowEventArgs e) { Application.Instance.AsyncInvoke(() => Application.Instance.Open(e.Uri.AbsoluteUri)); e.Cancel = true; }