예제 #1
0
 public void Dispose()
 {
     if (_self != null)
     {
         Release();
         _self = null;
     }
     GC.SuppressFinalize(this);
 }
예제 #2
0
        public static void add_ref(cef_web_plugin_info_t *self)
        {
            add_ref_delegate d;
            var p = self->_base._add_ref;

            if (p == _p0)
            {
                d = _d0;
            }
            else
            {
                d = (add_ref_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(add_ref_delegate));
                if (_p0 == IntPtr.Zero)
                {
                    _d0 = d; _p0 = p;
                }
            }
            d(self);
        }
예제 #3
0
        public static int has_one_ref(cef_web_plugin_info_t *self)
        {
            has_one_ref_delegate d;
            var p = self->_base._has_one_ref;

            if (p == _p2)
            {
                d = _d2;
            }
            else
            {
                d = (has_one_ref_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(has_one_ref_delegate));
                if (_p2 == IntPtr.Zero)
                {
                    _d2 = d; _p2 = p;
                }
            }
            return(d(self));
        }
예제 #4
0
        public static cef_string_userfree *get_description(cef_web_plugin_info_t *self)
        {
            get_description_delegate d;
            var p = self->_get_description;

            if (p == _p6)
            {
                d = _d6;
            }
            else
            {
                d = (get_description_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(get_description_delegate));
                if (_p6 == IntPtr.Zero)
                {
                    _d6 = d; _p6 = p;
                }
            }
            return(d(self));
        }
        public static int release(cef_web_plugin_info_t *self)
        {
            release_delegate d;
            var p = self->_base._release;

            if (p == _p1)
            {
                d = _d1;
            }
            else
            {
                d = (release_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(release_delegate));
                if (_p1 == IntPtr.Zero)
                {
                    _d1 = d; _p1 = p;
                }
            }
            return(d(self));
        }
예제 #6
0
 internal static CefWebPluginInfo FromNative(cef_web_plugin_info_t *ptr)
 {
     return(new CefWebPluginInfo(ptr));
 }
예제 #7
0
 public unsafe int OnBeforePluginLoad([Immutable] cef_string_t *mime_type, [Immutable] cef_string_t *plugin_url, int is_main_frame, [Immutable] cef_string_t *top_origin_url, cef_web_plugin_info_t *plugin_info, CefPluginPolicy *plugin_policy)
 {
     fixed(cef_request_context_handler_t *self = &this)
     {
         return(((delegate * unmanaged[Stdcall] < cef_request_context_handler_t *, cef_string_t *, cef_string_t *, int, cef_string_t *, cef_web_plugin_info_t *, CefPluginPolicy *, int >)on_before_plugin_load)(self, mime_type, plugin_url, is_main_frame, top_origin_url, plugin_info, plugin_policy));
     }
 }
예제 #8
0
 private CefWebPluginInfo(cef_web_plugin_info_t* ptr)
 {
     if (ptr == null) throw new ArgumentNullException("ptr");
     _self = ptr;
 }
예제 #9
0
        private int on_before_plugin_load(cef_request_handler_t *self, cef_browser_t *browser, cef_string_t *url, cef_string_t *policy_url, cef_web_plugin_info_t *info)
        {
            CheckSelf(self);

            var m_browser    = CefBrowser.FromNative(browser);
            var m_url        = cef_string_t.ToString(url);
            var m_policy_url = cef_string_t.ToString(policy_url);
            var m_info       = CefWebPluginInfo.FromNative(info);

            var result = OnBeforePluginLoad(m_browser, m_url, m_policy_url, m_info);

            return(result ? 1 : 0);
        }
예제 #10
0
 public CefWebPluginInfo(cef_web_plugin_info_t *instance)
     : base((cef_base_ref_counted_t *)instance)
 {
 }
        private int on_before_plugin_load(cef_request_context_handler_t *self, cef_string_t *mime_type, cef_string_t *plugin_url, int is_main_frame, cef_string_t *top_origin_url, cef_web_plugin_info_t *plugin_info, CefPluginPolicy *plugin_policy)
        {
            CheckSelf(self);

            var mMimeType     = cef_string_t.ToString(mime_type);
            var mPluginUrl    = cef_string_t.ToString(plugin_url);
            var mIsMainFrame  = is_main_frame != 0;
            var mTopOriginUrl = cef_string_t.ToString(top_origin_url);
            var mPluginInfo   = CefWebPluginInfo.FromNative(plugin_info);
            var mPluginPolicy = *plugin_policy;

            var result = OnBeforePluginLoad(mMimeType, mPluginUrl, mIsMainFrame, mTopOriginUrl, mPluginInfo, ref mPluginPolicy);

            *plugin_policy = mPluginPolicy;

            return(result ? 1 : 0);
        }
 public unsafe extern int OnBeforePluginLoad([Immutable] cef_string_t *mime_type, [Immutable] cef_string_t *plugin_url, int is_main_frame, [Immutable] cef_string_t *top_origin_url, cef_web_plugin_info_t *plugin_info, CefPluginPolicy *plugin_policy);
        private int on_before_plugin_load(cef_request_context_handler_t *self, cef_string_t *mime_type, cef_string_t *plugin_url, cef_string_t *top_origin_url, cef_web_plugin_info_t *plugin_info, CefPluginPolicy *plugin_policy)
        {
            CheckSelf(self);

            var m_mime_type      = cef_string_t.ToString(mime_type);
            var m_plugin_url     = cef_string_t.ToString(plugin_url);
            var m_top_origin_url = cef_string_t.ToString(top_origin_url);
            var m_plugin_info    = CefWebPluginInfo.FromNative(plugin_info);
            var m_plugin_policy  = *plugin_policy;

            var result = OnBeforePluginLoad(m_mime_type, m_plugin_url, m_top_origin_url, m_plugin_info, ref m_plugin_policy);

            *plugin_policy = m_plugin_policy;

            return(result ? 1 : 0);
        }
예제 #14
0
 public unsafe extern int Visit(cef_web_plugin_info_t *info, int count, int total);
예제 #15
0
        /// <summary>
        /// Called on the UI thread to handle requests for URLs with an invalid
        /// SSL certificate. Return true and call CefRequestCallback::Continue() either
        /// in this method or at a later time to continue or cancel the request. Return
        /// false to cancel the request immediately. If |callback| is empty the error
        /// cannot be recovered from and the request will be canceled automatically.
        /// If CefSettings.ignore_certificate_errors is set all invalid certificates
        /// will be accepted without calling this method.
        /// </summary>
        // protected abstract int OnCertificateError(cef_browser_t* browser, CefErrorCode cert_error, cef_string_t* request_url, cef_sslinfo_t* ssl_info, cef_request_callback_t* callback);

        private int on_before_plugin_load(cef_request_handler_t *self, cef_browser_t *browser, cef_string_t *url, cef_string_t *policy_url, cef_web_plugin_info_t *info)
        {
            CheckSelf(self);
            throw new NotImplementedException(); // TODO: CefRequestHandler.OnBeforePluginLoad
        }
예제 #16
0
 private int visit(cef_web_plugin_info_visitor_t *self, cef_web_plugin_info_t *info, int count, int total)
 {
     CheckSelf(self);
     throw new NotImplementedException(); // TODO: CefWebPluginInfoVisitor.Visit
 }