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); }
private void CheckSelf(cef_extension_handler_t *self) { if (_self != self) { throw ExceptionBuilder.InvalidSelfReference(); } }
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); }
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); } } } }
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)); }
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); }
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); } }
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); }
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); }
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); }
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 }
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); }
public CefExtensionHandler(cef_extension_handler_t *instance) : base((cef_base_ref_counted_t *)instance) { }
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); } }
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); } }
private void on_extension_load_failed(cef_extension_handler_t *self, CefErrorCode result) { CheckSelf(self); OnExtensionLoadFailed(result); }
public unsafe extern void LoadExtension([Immutable] cef_string_t *root_directory, cef_dictionary_value_t *manifest, cef_extension_handler_t *handler);