Esempio n. 1
0
        protected CefExtensionHandler()
        {
            _self = cef_extension_handler_t.Alloc();

            _ds0 = new cef_extension_handler_t.add_ref_delegate(add_ref);
            _self->_base._add_ref = Marshal.GetFunctionPointerForDelegate(_ds0);
            _ds1 = new cef_extension_handler_t.release_delegate(release);
            _self->_base._release = Marshal.GetFunctionPointerForDelegate(_ds1);
            _ds2 = new cef_extension_handler_t.has_one_ref_delegate(has_one_ref);
            _self->_base._has_one_ref = Marshal.GetFunctionPointerForDelegate(_ds2);
            _ds3 = new cef_extension_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_extension_handler_t.on_extension_load_failed_delegate(on_extension_load_failed);
            _self->_on_extension_load_failed = Marshal.GetFunctionPointerForDelegate(_ds4);
            _ds5 = new cef_extension_handler_t.on_extension_loaded_delegate(on_extension_loaded);
            _self->_on_extension_loaded = Marshal.GetFunctionPointerForDelegate(_ds5);
            _ds6 = new cef_extension_handler_t.on_extension_unloaded_delegate(on_extension_unloaded);
            _self->_on_extension_unloaded = Marshal.GetFunctionPointerForDelegate(_ds6);
            _ds7 = new cef_extension_handler_t.on_before_background_browser_delegate(on_before_background_browser);
            _self->_on_before_background_browser = Marshal.GetFunctionPointerForDelegate(_ds7);
            _ds8 = new cef_extension_handler_t.on_before_browser_delegate(on_before_browser);
            _self->_on_before_browser = Marshal.GetFunctionPointerForDelegate(_ds8);
            _ds9 = new cef_extension_handler_t.get_active_browser_delegate(get_active_browser);
            _self->_get_active_browser = Marshal.GetFunctionPointerForDelegate(_ds9);
            _dsa = new cef_extension_handler_t.can_access_browser_delegate(can_access_browser);
            _self->_can_access_browser = Marshal.GetFunctionPointerForDelegate(_dsa);
            _dsb = new cef_extension_handler_t.get_extension_resource_delegate(get_extension_resource);
            _self->_get_extension_resource = Marshal.GetFunctionPointerForDelegate(_dsb);
        }
Esempio n. 2
0
 private void CheckSelf(cef_extension_handler_t *self)
 {
     if (_self != self)
     {
         throw ExceptionBuilder.InvalidSelfReference();
     }
 }
Esempio n. 3
0
        private void on_extension_unloaded(cef_extension_handler_t *self, cef_extension_t *extension)
        {
            CheckSelf(self);

            var mExtension = CefExtension.FromNative(extension);

            OnExtensionUnloaded(mExtension);
        }
 protected virtual void Dispose(bool disposing)
 {
     if (_self != null)
     {
         cef_extension_handler_t.Free(_self);
         _self = null;
     }
 }
        internal static CefExtensionHandler FromNative(cef_extension_handler_t *ptr)
        {
            var value = FromNativeOrNull(ptr);

            if (value == null)
            {
                throw ExceptionBuilder.ObjectNotFound();
            }
            return(value);
        }
Esempio n. 6
0
        private static unsafe void OnExtensionLoadFailedImpl(cef_extension_handler_t *self, CefErrorCode result)
        {
            var instance = GetInstance((IntPtr)self) as CefExtensionHandler;

            if (instance == null || ((ICefExtensionHandlerPrivate)instance).AvoidOnExtensionLoadFailed())
            {
                return;
            }
            instance.OnExtensionLoadFailed(result);
        }
        internal static CefExtensionHandler FromNativeOrNull(cef_extension_handler_t *ptr)
        {
            CefExtensionHandler value = null;
            bool found;

            lock (_roots)
            {
                found = _roots.TryGetValue((IntPtr)ptr, out value);
            }
            return(found ? value : null);
        }
 private void add_ref(cef_extension_handler_t *self)
 {
     lock (SyncRoot)
     {
         var result = ++_refct;
         if (result == 1)
         {
             lock (_roots) { _roots.Add((IntPtr)_self, this); }
         }
     }
 }
Esempio n. 9
0
        private static unsafe void OnExtensionUnloadedImpl(cef_extension_handler_t *self, cef_extension_t *extension)
        {
            var instance = GetInstance((IntPtr)self) as CefExtensionHandler;

            if (instance == null || ((ICefExtensionHandlerPrivate)instance).AvoidOnExtensionUnloaded())
            {
                ReleaseIfNonNull((cef_base_ref_counted_t *)extension);
                return;
            }
            instance.OnExtensionUnloaded(CefExtension.Wrap(CefExtension.Create, extension));
        }
Esempio n. 10
0
        private cef_browser_t *get_active_browser(cef_extension_handler_t *self, cef_extension_t *extension, cef_browser_t *browser, int include_incognito)
        {
            CheckSelf(self);

            var m_extension        = CefExtension.FromNative(extension);
            var m_browser          = CefBrowser.FromNative(browser);
            var m_includeIncognito = include_incognito != 0;

            var result = GetActiveBrowser(m_extension, m_browser, m_includeIncognito);

            return(result != null?result.ToNative() : null);
        }
Esempio n. 11
0
        public CefExtensionHandler()
        {
            cef_extension_handler_t *self = this.NativeInstance;

            self->on_extension_load_failed     = (void *)Marshal.GetFunctionPointerForDelegate(fnOnExtensionLoadFailed);
            self->on_extension_loaded          = (void *)Marshal.GetFunctionPointerForDelegate(fnOnExtensionLoaded);
            self->on_extension_unloaded        = (void *)Marshal.GetFunctionPointerForDelegate(fnOnExtensionUnloaded);
            self->on_before_background_browser = (void *)Marshal.GetFunctionPointerForDelegate(fnOnBeforeBackgroundBrowser);
            self->on_before_browser            = (void *)Marshal.GetFunctionPointerForDelegate(fnOnBeforeBrowser);
            self->get_active_browser           = (void *)Marshal.GetFunctionPointerForDelegate(fnGetActiveBrowser);
            self->can_access_browser           = (void *)Marshal.GetFunctionPointerForDelegate(fnCanAccessBrowser);
            self->get_extension_resource       = (void *)Marshal.GetFunctionPointerForDelegate(fnGetExtensionResource);
        }
 private int release(cef_extension_handler_t *self)
 {
     lock (SyncRoot)
     {
         var result = --_refct;
         if (result == 0)
         {
             lock (_roots) { _roots.Remove((IntPtr)_self); }
             return(1);
         }
         return(0);
     }
 }
Esempio n. 13
0
        private int can_access_browser(cef_extension_handler_t *self, cef_extension_t *extension, cef_browser_t *browser, int include_incognito, cef_browser_t *target_browser)
        {
            CheckSelf(self);

            var m_extension       = CefExtension.FromNative(extension);
            var m_browser         = CefBrowser.FromNativeOrNull(browser);
            var m_includeIcognito = include_incognito != 0;
            var m_targetBrowser   = CefBrowser.FromNativeOrNull(target_browser);

            var result = CanAccessBrowser(m_extension, m_browser, m_includeIcognito, m_targetBrowser);

            return(result ? 1 : 0);
        }
Esempio n. 14
0
        private int get_extension_resource(cef_extension_handler_t *self, cef_extension_t *extension, cef_browser_t *browser, cef_string_t *file, cef_get_extension_resource_callback_t *callback)
        {
            CheckSelf(self);

            var m_extension = CefExtension.FromNative(extension);
            var m_browser   = CefBrowser.FromNativeOrNull(browser);
            var m_file      = cef_string_t.ToString(file);
            var m_callback  = CefGetExtensionResourceCallback.FromNativeOrNull(callback);

            var handled = GetExtensionResource(m_extension, m_browser, m_file, m_callback);

            if (!handled)
            {
                m_callback.Dispose();
            }

            return(handled ? 1 : 0);
        }
Esempio n. 15
0
        private int on_before_background_browser(cef_extension_handler_t *self, cef_extension_t *extension, cef_string_t *url, cef_client_t **client, cef_browser_settings_t *settings)
        {
            CheckSelf(self);

            var m_extension = CefExtension.FromNative(extension);
            var m_url       = cef_string_t.ToString(url);
            var m_client    = CefClient.FromNative(*client);
            var m_settings  = new CefBrowserSettings(settings);

            var o_client = m_client;
            var cancel   = OnBeforeBackgroundBrowser(m_extension, m_url, ref m_client, m_settings);

            if (!cancel && ((object)o_client != m_client && m_client != null))
            {
                *client = m_client.ToNative();
            }

            m_settings.Dispose();

            return(cancel ? 1 : 0);
        }
Esempio n. 16
0
        public CefExtensionHandler()
        {
            cef_extension_handler_t *self = this.NativeInstance;

                        #if NET_LESS_5_0
            self->on_extension_load_failed     = (void *)Marshal.GetFunctionPointerForDelegate(fnOnExtensionLoadFailed);
            self->on_extension_loaded          = (void *)Marshal.GetFunctionPointerForDelegate(fnOnExtensionLoaded);
            self->on_extension_unloaded        = (void *)Marshal.GetFunctionPointerForDelegate(fnOnExtensionUnloaded);
            self->on_before_background_browser = (void *)Marshal.GetFunctionPointerForDelegate(fnOnBeforeBackgroundBrowser);
            self->on_before_browser            = (void *)Marshal.GetFunctionPointerForDelegate(fnOnBeforeBrowser);
            self->get_active_browser           = (void *)Marshal.GetFunctionPointerForDelegate(fnGetActiveBrowser);
            self->can_access_browser           = (void *)Marshal.GetFunctionPointerForDelegate(fnCanAccessBrowser);
            self->get_extension_resource       = (void *)Marshal.GetFunctionPointerForDelegate(fnGetExtensionResource);
                        #else
            self->on_extension_load_failed     = (delegate * unmanaged[Stdcall] < cef_extension_handler_t *, CefErrorCode, void >) & OnExtensionLoadFailedImpl;
            self->on_extension_loaded          = (delegate * unmanaged[Stdcall] < cef_extension_handler_t *, cef_extension_t *, void >) & OnExtensionLoadedImpl;
            self->on_extension_unloaded        = (delegate * unmanaged[Stdcall] < cef_extension_handler_t *, cef_extension_t *, void >) & OnExtensionUnloadedImpl;
            self->on_before_background_browser = (delegate * unmanaged[Stdcall] < cef_extension_handler_t *, cef_extension_t *, cef_string_t *, cef_client_t **, cef_browser_settings_t *, int >) & OnBeforeBackgroundBrowserImpl;
            self->on_before_browser            = (delegate * unmanaged[Stdcall] < cef_extension_handler_t *, cef_extension_t *, cef_browser_t *, cef_browser_t *, int, cef_string_t *, int, cef_window_info_t *, cef_client_t **, cef_browser_settings_t *, int >) & OnBeforeBrowserImpl;
            self->get_active_browser           = (delegate * unmanaged[Stdcall] < cef_extension_handler_t *, cef_extension_t *, cef_browser_t *, int, cef_browser_t * >) & GetActiveBrowserImpl;
            self->can_access_browser           = (delegate * unmanaged[Stdcall] < cef_extension_handler_t *, cef_extension_t *, cef_browser_t *, int, cef_browser_t *, int >) & CanAccessBrowserImpl;
            self->get_extension_resource       = (delegate * unmanaged[Stdcall] < cef_extension_handler_t *, cef_extension_t *, cef_browser_t *, cef_string_t *, cef_get_extension_resource_callback_t *, int >) & GetExtensionResourceImpl;
                        #endif
        }
Esempio n. 17
0
        public static void load_extension(cef_request_context_t *self, cef_string_t *root_directory, cef_dictionary_value_t *manifest, cef_extension_handler_t *handler)
        {
            load_extension_delegate d;
            var p = self->_load_extension;

            if (p == _p16)
            {
                d = _d16;
            }
            else
            {
                d = (load_extension_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(load_extension_delegate));
                if (_p16 == IntPtr.Zero)
                {
                    _d16 = d; _p16 = p;
                }
            }
            d(self, root_directory, manifest, handler);
        }
Esempio n. 18
0
 public CefExtensionHandler(cef_extension_handler_t *instance)
     : base((cef_base_ref_counted_t *)instance)
 {
 }
Esempio n. 19
0
 public unsafe void LoadExtension([Immutable] cef_string_t *root_directory, cef_dictionary_value_t *manifest, cef_extension_handler_t *handler)
 {
     fixed(cef_request_context_t *self = &this)
     {
         ((delegate * unmanaged[Stdcall] < cef_request_context_t *, cef_string_t *, cef_dictionary_value_t *, cef_extension_handler_t *, void >)load_extension)(self, root_directory, manifest, handler);
     }
 }
 private int has_at_least_one_ref(cef_extension_handler_t *self)
 {
     lock (SyncRoot) { return(_refct != 0 ? 1 : 0); }
 }
Esempio n. 21
0
 internal static void Free(cef_extension_handler_t *ptr)
 {
     Marshal.FreeHGlobal((IntPtr)ptr);
 }
 private int has_one_ref(cef_extension_handler_t *self)
 {
     lock (SyncRoot) { return(_refct == 1 ? 1 : 0); }
 }
Esempio n. 23
0
        private void on_extension_load_failed(cef_extension_handler_t *self, CefErrorCode result)
        {
            CheckSelf(self);

            OnExtensionLoadFailed(result);
        }
Esempio n. 24
0
 public unsafe extern void LoadExtension([Immutable] cef_string_t *root_directory, cef_dictionary_value_t *manifest, cef_extension_handler_t *handler);