protected ScriptDialogDeferral CreateScriptDialogDeferral(CefJSDialogCallback callback) { var deferral = new ScriptDialogDeferral(this, callback); _scriptDialogDeferral = deferral; return(deferral); }
/// <summary> /// Initializes a new instance of the <see cref="ScriptDialogOpeningEventArgs"/> class. /// </summary> /// <param name="kind">The kind of JavaScript dialog box.</param> /// <param name="message">The message of the dialog box.</param> /// <param name="reload">Indicates that the event is fired before page reloading.</param> /// <param name="callback"></param> public ScriptDialogOpeningRoutedEventArgs(string message, bool reload, ScriptDialogDeferral callback) : base(WebView.ScriptDialogOpeningEvent) { this.Uri = null; this.Kind = ScriptDialogKind.BeforeUnload; this.Message = message; this.IsReload = reload; _callback = callback; }
/// <summary> /// Initializes a new instance of the <see cref="ScriptDialogOpeningEventArgs"/> class. /// </summary> /// <param name="originUrl">The URI of the page that requested the dialog box.</param> /// <param name="kind">The kind of JavaScript dialog box.</param> /// <param name="message">The message of the dialog box.</param> /// <param name="defaultText">The default value to use for the result of the prompt JavaScript function.</param> /// <param name="callback"></param> public ScriptDialogOpeningRoutedEventArgs(string originUrl, ScriptDialogKind kind, string message, string defaultText, ScriptDialogDeferral callback) : base(WebView.ScriptDialogOpeningEvent) { this.Uri = Uri.TryCreate(originUrl, UriKind.Absolute, out Uri uri) ? uri : null; this.Kind = kind; this.Message = message; this.DefaultText = defaultText; _callback = callback; }
/// <inheritdoc /> protected override bool OnBeforeUnloadDialog(CefBrowser browser, string messageText, bool isReload, CefJSDialogCallback callback) { ScriptDialogDeferral dialogDeferral = CreateScriptDialogDeferral(callback); var ea = new ScriptDialogOpeningRoutedEventArgs(messageText, isReload, dialogDeferral); WebView.RaiseScriptDialogOpening(ea); if (!ea.Handled) { ((IDisposable)dialogDeferral).Dispose(); } return(ea.Handled); }
/// <inheritdoc /> protected override bool OnJSDialog(CefBrowser browser, string originUrl, CefJSDialogType dialogType, string messageText, string defaultPromptText, CefJSDialogCallback callback, ref int suppressMessage) { ScriptDialogDeferral dialogDeferral = CreateScriptDialogDeferral(callback); var ea = new ScriptDialogOpeningRoutedEventArgs(originUrl, (ScriptDialogKind)dialogType, messageText, defaultPromptText, dialogDeferral); WebView.RaiseScriptDialogOpening(ea); suppressMessage = ea.Suppress ? 1 : 0; if (!ea.Handled) { ((IDisposable)dialogDeferral).Dispose(); } return(ea.Handled); }
private void HandleScriptDialogOpeningEvent(object sender, IScriptDialogOpeningEventArgs e) { if (e.Kind == ScriptDialogKind.Alert) { e.Handled = true; ScriptDialogDeferral dialogCallback = e.GetDeferral(); Dispatcher.InvokeAsync(() => MessageBox.Show(e.Message, "WPF dialog")).Task.ContinueWith(t => { dialogCallback.Accept(); }); } }
internal bool ReleaseScriptDialogDeferral(ScriptDialogDeferral deferral) { return(ReferenceEquals(deferral, Interlocked.CompareExchange(ref _scriptDialogDeferral, null, deferral))); }