private void on_reset_dialog_state(cef_jsdialog_handler_t* self, cef_browser_t* browser)
        {
            CheckSelf(self);

            var m_browser = CefBrowser.FromNative(browser);

            OnResetDialogState(m_browser);
        }
        private int on_before_unload_dialog(cef_jsdialog_handler_t* self, cef_browser_t* browser, cef_string_t* message_text, int is_reload, cef_jsdialog_callback_t* callback)
        {
            CheckSelf(self);

            var m_browser = CefBrowser.FromNative(browser);
            var m_message_text = cef_string_t.ToString(message_text);
            var m_callback = CefJSDialogCallback.FromNative(callback);

            return OnBeforeUnloadDialog(m_browser, m_message_text, is_reload != 0, m_callback) ? 1 : 0;
        }
        /// <summary>
        /// Called  to run a JavaScript alert message. Return false to display
        /// the default alert or true if you displayed a custom alert.
        /// </summary>
        private int on_jsalert(cef_jsdialog_handler_t* self, cef_browser_t* browser, cef_frame_t* frame, /*const*/ cef_string_t* message)
        {
            ThrowIfObjectDisposed();

            var m_browser = CefBrowser.From(browser);
            var m_frame = CefFrame.From(frame);
            var m_message = cef_string_t.ToString(message);

            var handled = this.OnJSAlert(m_browser, m_frame, m_message);

            return handled ? 1 : 0;
        }
 private int release(cef_jsdialog_handler_t* self)
 {
     lock (SyncRoot)
     {
         var result = --_refct;
         if (result == 0)
         {
             lock (_roots) { _roots.Remove((IntPtr)_self); }
         }
         return result;
     }
 }
 private int add_ref(cef_jsdialog_handler_t* self)
 {
     lock (SyncRoot)
     {
         var result = ++_refct;
         if (result == 1)
         {
             lock (_roots) { _roots.Add((IntPtr)_self, this); }
         }
         return result;
     }
 }
        private int on_jsdialog(cef_jsdialog_handler_t* self, cef_browser_t* browser, cef_string_t* origin_url, cef_string_t* accept_lang, CefJSDialogType dialog_type, cef_string_t* message_text, cef_string_t* default_prompt_text, cef_jsdialog_callback_t* callback, int* suppress_message)
        {
            CheckSelf(self);

            var m_browser = CefBrowser.FromNative(browser);
            var m_origin_url = cef_string_t.ToString(origin_url);
            var m_accept_lang = cef_string_t.ToString(accept_lang);
            var m_message_text = cef_string_t.ToString(message_text);
            var m_default_prompt_text = cef_string_t.ToString(default_prompt_text);
            var m_callback = CefJSDialogCallback.FromNative(callback);
            bool m_suppress_message;

            var result = OnJSDialog(m_browser, m_origin_url, m_accept_lang, dialog_type, m_message_text, m_default_prompt_text, m_callback, out m_suppress_message);

            *suppress_message = m_suppress_message ? 1 : 0;
            return result ? 1 : 0;
        }
        /// <summary>
        /// Called to run a JavaScript confirm request. Return false to display
        /// the default alert or true if you displayed a custom alert. If you
        /// handled the alert set |retval| to true if the user accepted the
        /// confirmation.
        /// </summary>
        private int on_jsconfirm(cef_jsdialog_handler_t* self, cef_browser_t* browser, cef_frame_t* frame, /*const*/ cef_string_t* message, int* retval)
        {
            ThrowIfObjectDisposed();

            var m_browser = CefBrowser.From(browser);
            var m_frame = CefFrame.From(frame);
            var m_message = cef_string_t.ToString(message);
            bool m_retval;

            var handled = this.OnJSConfirm(m_browser, m_frame, m_message, out m_retval);

            if (handled)
            {
                *retval = m_retval ? 1 : 0;
            }

            return handled ? 1 : 0;
        }
        /// <summary>
        /// Called to run a JavaScript prompt request. Return false to display
        /// the default prompt or true if you displayed a custom prompt. If you
        /// handled the prompt set |retval| to true if the user accepted the
        /// prompt and request and |result| to the resulting value.
        /// </summary>
        private int on_jsprompt(cef_jsdialog_handler_t* self, cef_browser_t* browser, cef_frame_t* frame, /*const*/ cef_string_t* message, /*const*/ cef_string_t* defaultValue, int* retval, cef_string_t* result)
        {
            ThrowIfObjectDisposed();

            var m_browser = CefBrowser.From(browser);
            var m_frame = CefFrame.From(frame);
            var m_message = cef_string_t.ToString(message);
            var m_defaultValue = cef_string_t.ToString(defaultValue);
            bool m_retval;
            string m_result;

            var handled = this.OnJSPrompt(m_browser, m_frame, m_message, m_defaultValue, out m_retval, out m_result);

            if (handled)
            {
                *retval = m_retval ? 1 : 0;
                cef_string_t.Copy(m_result, result);
            }

            return handled ? 1 : 0;
        }
 private int get_refct(cef_jsdialog_handler_t* self)
 {
     return _refct;
 }
 private void CheckSelf(cef_jsdialog_handler_t* self)
 {
     if (_self != self) throw ExceptionBuilder.InvalidSelfReference();
 }
        private void on_dialog_closed(cef_jsdialog_handler_t* self, cef_browser_t* browser)
        {
            CheckSelf(self);

            var m_browser = CefBrowser.FromNative(browser);

            OnDialogClosed(m_browser);
        }