private void CheckSelf(cef_jsdialog_handler_t *self)
 {
     if (_self != self)
     {
         throw ExceptionBuilder.InvalidSelfReference();
     }
 }
 protected virtual void Dispose(bool disposing)
 {
     if (_self != null)
     {
         cef_jsdialog_handler_t.Free(_self);
         _self = null;
     }
 }
 protected virtual void Dispose(bool disposing)
 {
     if (_self != null)
     {
         cef_jsdialog_handler_t.Free(_self);
         _self = null;
     }
 }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }
        public CefJSDialogHandler()
        {
            cef_jsdialog_handler_t *self = this.NativeInstance;

            self->on_jsdialog             = (void *)Marshal.GetFunctionPointerForDelegate(fnOnJSDialog);
            self->on_before_unload_dialog = (void *)Marshal.GetFunctionPointerForDelegate(fnOnBeforeUnloadDialog);
            self->on_reset_dialog_state   = (void *)Marshal.GetFunctionPointerForDelegate(fnOnResetDialogState);
            self->on_dialog_closed        = (void *)Marshal.GetFunctionPointerForDelegate(fnOnDialogClosed);
        }
Exemple #7
0
        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);
        }
 private void add_ref(cef_jsdialog_handler_t *self)
 {
     lock (SyncRoot)
     {
         var result = ++_refct;
         if (result == 1)
         {
             lock (_roots) { _roots.Add((IntPtr)_self, this); }
         }
     }
 }
        /// <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);
        }
Exemple #10
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);
     }
 }
Exemple #11
0
        private int on_jsdialog(cef_jsdialog_handler_t *self, cef_browser_t *browser, cef_string_t *origin_url, 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_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, 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);
        }
Exemple #12
0
        public CefJSDialogHandler()
        {
            cef_jsdialog_handler_t *self = this.NativeInstance;

                        #if NET_LESS_5_0
            self->on_jsdialog             = (void *)Marshal.GetFunctionPointerForDelegate(fnOnJSDialog);
            self->on_before_unload_dialog = (void *)Marshal.GetFunctionPointerForDelegate(fnOnBeforeUnloadDialog);
            self->on_reset_dialog_state   = (void *)Marshal.GetFunctionPointerForDelegate(fnOnResetDialogState);
            self->on_dialog_closed        = (void *)Marshal.GetFunctionPointerForDelegate(fnOnDialogClosed);
                        #else
            self->on_jsdialog             = (delegate * unmanaged[Stdcall] < cef_jsdialog_handler_t *, cef_browser_t *, cef_string_t *, CefJSDialogType, cef_string_t *, cef_string_t *, cef_jsdialog_callback_t *, int *, int >) & OnJSDialogImpl;
            self->on_before_unload_dialog = (delegate * unmanaged[Stdcall] < cef_jsdialog_handler_t *, cef_browser_t *, cef_string_t *, int, cef_jsdialog_callback_t *, int >) & OnBeforeUnloadDialogImpl;
            self->on_reset_dialog_state   = (delegate * unmanaged[Stdcall] < cef_jsdialog_handler_t *, cef_browser_t *, void >) & OnResetDialogStateImpl;
            self->on_dialog_closed        = (delegate * unmanaged[Stdcall] < cef_jsdialog_handler_t *, cef_browser_t *, void >) & OnDialogClosedImpl;
                        #endif
        }
 protected CefJSDialogHandler()
 {
     _self = cef_jsdialog_handler_t.Alloc();
 
     _ds0 = new cef_jsdialog_handler_t.add_ref_delegate(add_ref);
     _self->_base._add_ref = Marshal.GetFunctionPointerForDelegate(_ds0);
     _ds1 = new cef_jsdialog_handler_t.release_delegate(release);
     _self->_base._release = Marshal.GetFunctionPointerForDelegate(_ds1);
     _ds2 = new cef_jsdialog_handler_t.get_refct_delegate(get_refct);
     _self->_base._get_refct = Marshal.GetFunctionPointerForDelegate(_ds2);
     _ds3 = new cef_jsdialog_handler_t.on_jsdialog_delegate(on_jsdialog);
     _self->_on_jsdialog = Marshal.GetFunctionPointerForDelegate(_ds3);
     _ds4 = new cef_jsdialog_handler_t.on_before_unload_dialog_delegate(on_before_unload_dialog);
     _self->_on_before_unload_dialog = Marshal.GetFunctionPointerForDelegate(_ds4);
     _ds5 = new cef_jsdialog_handler_t.on_reset_dialog_state_delegate(on_reset_dialog_state);
     _self->_on_reset_dialog_state = Marshal.GetFunctionPointerForDelegate(_ds5);
 }
Exemple #14
0
        protected CefJSDialogHandler()
        {
            _self = cef_jsdialog_handler_t.Alloc();

            _ds0 = new cef_jsdialog_handler_t.add_ref_delegate(add_ref);
            _self->_base._add_ref = Marshal.GetFunctionPointerForDelegate(_ds0);
            _ds1 = new cef_jsdialog_handler_t.release_delegate(release);
            _self->_base._release = Marshal.GetFunctionPointerForDelegate(_ds1);
            _ds2 = new cef_jsdialog_handler_t.get_refct_delegate(get_refct);
            _self->_base._get_refct = Marshal.GetFunctionPointerForDelegate(_ds2);
            _ds3 = new cef_jsdialog_handler_t.on_jsdialog_delegate(on_jsdialog);
            _self->_on_jsdialog = Marshal.GetFunctionPointerForDelegate(_ds3);
            _ds4 = new cef_jsdialog_handler_t.on_before_unload_dialog_delegate(on_before_unload_dialog);
            _self->_on_before_unload_dialog = Marshal.GetFunctionPointerForDelegate(_ds4);
            _ds5 = new cef_jsdialog_handler_t.on_reset_dialog_state_delegate(on_reset_dialog_state);
            _self->_on_reset_dialog_state = Marshal.GetFunctionPointerForDelegate(_ds5);
        }
        /// <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);
        }
Exemple #16
0
        protected CefJSDialogHandler()
        {
            _self = cef_jsdialog_handler_t.Alloc();

            _ds0 = new cef_jsdialog_handler_t.add_ref_delegate(add_ref);
            _self->_base._add_ref = Marshal.GetFunctionPointerForDelegate(_ds0);
            _ds1 = new cef_jsdialog_handler_t.release_delegate(release);
            _self->_base._release = Marshal.GetFunctionPointerForDelegate(_ds1);
            _ds2 = new cef_jsdialog_handler_t.has_one_ref_delegate(has_one_ref);
            _self->_base._has_one_ref = Marshal.GetFunctionPointerForDelegate(_ds2);
            _ds3 = new cef_jsdialog_handler_t.has_at_least_one_ref_delegate(has_at_least_one_ref);
            _self->_base._has_at_least_one_ref = Marshal.GetFunctionPointerForDelegate(_ds3);
            _ds4 = new cef_jsdialog_handler_t.on_jsdialog_delegate(on_jsdialog);
            _self->_on_jsdialog = Marshal.GetFunctionPointerForDelegate(_ds4);
            _ds5 = new cef_jsdialog_handler_t.on_before_unload_dialog_delegate(on_before_unload_dialog);
            _self->_on_before_unload_dialog = Marshal.GetFunctionPointerForDelegate(_ds5);
            _ds6 = new cef_jsdialog_handler_t.on_reset_dialog_state_delegate(on_reset_dialog_state);
            _self->_on_reset_dialog_state = Marshal.GetFunctionPointerForDelegate(_ds6);
            _ds7 = new cef_jsdialog_handler_t.on_dialog_closed_delegate(on_dialog_closed);
            _self->_on_dialog_closed = Marshal.GetFunctionPointerForDelegate(_ds7);
        }
        /// <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 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);
     throw new NotImplementedException(); // TODO: CefJSDialogHandler.OnJSDialog
 }
        /// <summary>
        /// Called to run a dialog asking the user if they want to leave a page. Return
        /// false to use the default dialog implementation. Return true if the
        /// application will use a custom dialog or if the callback has been executed
        /// immediately. Custom dialogs may be either modal or modeless. If a custom
        /// dialog is used the application must execute |callback| once the custom
        /// dialog is dismissed.
        /// </summary>
        // protected abstract int OnBeforeUnloadDialog(cef_browser_t* browser, cef_string_t* message_text, int is_reload, cef_jsdialog_callback_t* callback);

        private void on_reset_dialog_state(cef_jsdialog_handler_t *self, cef_browser_t *browser)
        {
            CheckSelf(self);
            throw new NotImplementedException(); // TODO: CefJSDialogHandler.OnResetDialogState
        }
        /// <summary>
        /// Called to cancel any pending dialogs and reset any saved dialog state. Will
        /// be called due to events like page navigation irregardless of whether any
        /// dialogs are currently pending.
        /// </summary>
        // protected abstract void OnResetDialogState(cef_browser_t* browser);

        private void on_dialog_closed(cef_jsdialog_handler_t *self, cef_browser_t *browser)
        {
            CheckSelf(self);
            throw new NotImplementedException(); // TODO: CefJSDialogHandler.OnDialogClosed
        }
 internal static void Free(cef_jsdialog_handler_t *ptr)
 {
     Marshal.FreeHGlobal((IntPtr)ptr);
 }
Exemple #22
0
 public CefJSDialogHandler(cef_jsdialog_handler_t *instance)
     : base((cef_base_ref_counted_t *)instance)
 {
 }
 private int has_one_ref(cef_jsdialog_handler_t *self)
 {
     lock (SyncRoot) { return(_refct == 1 ? 1 : 0); }
 }
Exemple #24
0
 private int has_at_least_one_ref(cef_jsdialog_handler_t *self)
 {
     lock (SyncRoot) { return(_refct != 0 ? 1 : 0); }
 }
Exemple #25
0
 private int get_refct(cef_jsdialog_handler_t *self)
 {
     return(_refct);
 }
        /// <summary>
        /// Called to run a JavaScript dialog. The |default_prompt_text| value will be
        /// specified for prompt dialogs only. Set |suppress_message| to true and
        /// return false to suppress the message (suppressing messages is preferable
        /// to immediately executing the callback as this is used to detect presumably
        /// malicious behavior like spamming alert messages in onbeforeunload). Set
        /// |suppress_message| to false and return false to use the default
        /// implementation (the default implementation will show one modal dialog at a
        /// time and suppress any additional dialog requests until the displayed dialog
        /// is dismissed). Return true if the application will use a custom dialog or
        /// if the callback has been executed immediately. Custom dialogs may be either
        /// modal or modeless. If a custom dialog is used the application must execute
        /// |callback| once the custom dialog is dismissed.
        /// </summary>
        // protected abstract int OnJSDialog(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);

        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);
            throw new NotImplementedException(); // TODO: CefJSDialogHandler.OnBeforeUnloadDialog
        }