private void CheckSelf(cef_app_t *self) { if (_self != self) { throw ExceptionBuilder.InvalidSelfReference(); } }
/// <summary> /// Return the handler for resource bundle events. If /// CefSettings.pack_loading_disabled is true (1) a handler must be /// returned. If no handler is returned resources will be loaded from /// pack files. This function is called on multiple threads. /// </summary> private cef_resource_bundle_handler_t *get_resource_bundle_handler(cef_app_t *self) { ThrowIfObjectDisposed(); var handler = GetResourceBundleHandler(); return(handler == null ? null : handler.GetNativePointerAndAddRef()); }
protected virtual void Dispose(bool disposing) { if (_self != null) { cef_app_t.Free(_self); _self = null; } }
private cef_resource_bundle_handler_t *get_resource_bundle_handler(cef_app_t *self) { CheckSelf(self); var result = GetResourceBundleHandler(); return(result != null?result.ToNative() : null); }
private cef_render_process_handler_t *get_render_process_handler(cef_app_t *self) { CheckSelf(self); var result = GetRenderProcessHandler(); return(result != null?result.ToNative() : null); }
/// <summary> /// Return the handler for proxy events. If not handler is returned the /// default system handler will be used. This function is called on the /// IO thread. /// </summary> private cef_proxy_handler_t *get_proxy_handler(cef_app_t *self) { ThrowIfObjectDisposed(); var handler = GetProxyHandler(); return(handler == null ? null : handler.GetNativePointerAndAddRef()); }
/// <summary> /// Provides an opportunity to register custom schemes. Do not keep a /// reference to the |registrar| object. This function is called on the /// UI thread. /// </summary> private void on_register_custom_schemes(cef_app_t *self, cef_scheme_registrar_t *registrar) { ThrowIfObjectDisposed(); using (var m_registrar = CefSchemeRegistrar.From(registrar)) { this.OnRegisterCustomSchemes(m_registrar); } }
// void (*)(_cef_app_t* self, _cef_scheme_registrar_t* registrar)* private static unsafe void OnRegisterCustomSchemesImpl(cef_app_t *self, cef_scheme_registrar_t *registrar) { var instance = GetInstance((IntPtr)self) as CefApp; if (instance == null || ((ICefAppPrivate)instance).AvoidOnRegisterCustomSchemes()) { return; } instance.OnRegisterCustomSchemes(CefSchemeRegistrar.Wrap(CefSchemeRegistrar.Create, registrar)); }
public CefApp() { cef_app_t *self = FixedPtr; self->get_browser_process_handler = holder_get_browser_process_handler; self->get_render_process_handler = holder_get_render_prcess_handler; self->get_resource_bundle_handler = holder_get_resource_bundle_handler; self->on_before_command_line_processing = holder_on_before_command_line_processing; self->on_register_custom_schemes = holder_on_register_custom_schemes; }
private void on_register_custom_schemes(cef_app_t *self, cef_scheme_registrar_t *registrar) { CheckSelf(self); var m_registrar = CefSchemeRegistrar.FromNative(registrar); OnRegisterCustomSchemes(m_registrar); m_registrar.Dispose(); }
public CefApp() { cef_app_t *self = this.NativeInstance; self->on_before_command_line_processing = (void *)Marshal.GetFunctionPointerForDelegate(fnOnBeforeCommandLineProcessing); self->on_register_custom_schemes = (void *)Marshal.GetFunctionPointerForDelegate(fnOnRegisterCustomSchemes); self->get_resource_bundle_handler = (void *)Marshal.GetFunctionPointerForDelegate(fnGetResourceBundleHandler); self->get_browser_process_handler = (void *)Marshal.GetFunctionPointerForDelegate(fnGetBrowserProcessHandler); self->get_render_process_handler = (void *)Marshal.GetFunctionPointerForDelegate(fnGetRenderProcessHandler); }
private void on_before_command_line_processing(cef_app_t *self, cef_string_t *process_type, cef_command_line_t *command_line) { CheckSelf(self); var processType = cef_string_t.ToString(process_type); var m_commandLine = CefCommandLine.FromNative(command_line); OnBeforeCommandLineProcessing(processType, m_commandLine); m_commandLine.Dispose(); }
// void (*)(_cef_app_t* self, const cef_string_t* process_type, _cef_command_line_t* command_line)* private static unsafe void OnBeforeCommandLineProcessingImpl(cef_app_t *self, cef_string_t *process_type, cef_command_line_t *command_line) { var instance = GetInstance((IntPtr)self) as CefApp; if (instance == null || ((ICefAppPrivate)instance).AvoidOnBeforeCommandLineProcessing()) { ReleaseIfNonNull((cef_base_ref_counted_t *)command_line); return; } instance.OnBeforeCommandLineProcessing(CefString.Read(process_type), CefCommandLine.Wrap(CefCommandLine.Create, command_line)); }
private void add_ref(cef_app_t *self) { lock (SyncRoot) { var result = ++_refct; if (result == 1) { lock (_roots) { _roots.Add((IntPtr)_self, this); } } } }
private int release(cef_app_t *self) { lock (SyncRoot) { var result = --_refct; if (result == 0) { lock (_roots) { _roots.Remove((IntPtr)_self); } } return(result); } }
public CefApp() { cef_app_t *self = this.NativeInstance; #if NET_LESS_5_0 self->on_before_command_line_processing = (void *)Marshal.GetFunctionPointerForDelegate(fnOnBeforeCommandLineProcessing); self->on_register_custom_schemes = (void *)Marshal.GetFunctionPointerForDelegate(fnOnRegisterCustomSchemes); self->get_resource_bundle_handler = (void *)Marshal.GetFunctionPointerForDelegate(fnGetResourceBundleHandler); self->get_browser_process_handler = (void *)Marshal.GetFunctionPointerForDelegate(fnGetBrowserProcessHandler); self->get_render_process_handler = (void *)Marshal.GetFunctionPointerForDelegate(fnGetRenderProcessHandler); #else self->on_before_command_line_processing = (delegate * unmanaged[Stdcall] < cef_app_t *, cef_string_t *, cef_command_line_t *, void >) & OnBeforeCommandLineProcessingImpl; self->on_register_custom_schemes = (delegate * unmanaged[Stdcall] < cef_app_t *, cef_scheme_registrar_t *, void >) & OnRegisterCustomSchemesImpl; self->get_resource_bundle_handler = (delegate * unmanaged[Stdcall] < cef_app_t *, cef_resource_bundle_handler_t * >) & GetResourceBundleHandlerImpl; self->get_browser_process_handler = (delegate * unmanaged[Stdcall] < cef_app_t *, cef_browser_process_handler_t * >) & GetBrowserProcessHandlerImpl; self->get_render_process_handler = (delegate * unmanaged[Stdcall] < cef_app_t *, cef_render_process_handler_t * >) & GetRenderProcessHandlerImpl; #endif }
protected CefApp() { _self = cef_app_t.Alloc(); _ds0 = new cef_app_t.add_ref_delegate(add_ref); _self->_base._add_ref = Marshal.GetFunctionPointerForDelegate(_ds0); _ds1 = new cef_app_t.release_delegate(release); _self->_base._release = Marshal.GetFunctionPointerForDelegate(_ds1); _ds2 = new cef_app_t.has_one_ref_delegate(has_one_ref); _self->_base._has_one_ref = Marshal.GetFunctionPointerForDelegate(_ds2); _ds3 = new cef_app_t.on_before_command_line_processing_delegate(on_before_command_line_processing); _self->_on_before_command_line_processing = Marshal.GetFunctionPointerForDelegate(_ds3); _ds4 = new cef_app_t.on_register_custom_schemes_delegate(on_register_custom_schemes); _self->_on_register_custom_schemes = Marshal.GetFunctionPointerForDelegate(_ds4); _ds5 = new cef_app_t.get_resource_bundle_handler_delegate(get_resource_bundle_handler); _self->_get_resource_bundle_handler = Marshal.GetFunctionPointerForDelegate(_ds5); _ds6 = new cef_app_t.get_browser_process_handler_delegate(get_browser_process_handler); _self->_get_browser_process_handler = Marshal.GetFunctionPointerForDelegate(_ds6); _ds7 = new cef_app_t.get_render_process_handler_delegate(get_render_process_handler); _self->_get_render_process_handler = Marshal.GetFunctionPointerForDelegate(_ds7); }
protected CefApp() { _self = cef_app_t.Alloc(); _ds0 = new cef_app_t.add_ref_delegate(add_ref); _self->_base._add_ref = Marshal.GetFunctionPointerForDelegate(_ds0); _ds1 = new cef_app_t.release_delegate(release); _self->_base._release = Marshal.GetFunctionPointerForDelegate(_ds1); _ds2 = new cef_app_t.get_refct_delegate(get_refct); _self->_base._get_refct = Marshal.GetFunctionPointerForDelegate(_ds2); _ds3 = new cef_app_t.on_before_command_line_processing_delegate(on_before_command_line_processing); _self->_on_before_command_line_processing = Marshal.GetFunctionPointerForDelegate(_ds3); _ds4 = new cef_app_t.on_register_custom_schemes_delegate(on_register_custom_schemes); _self->_on_register_custom_schemes = Marshal.GetFunctionPointerForDelegate(_ds4); _ds5 = new cef_app_t.get_resource_bundle_handler_delegate(get_resource_bundle_handler); _self->_get_resource_bundle_handler = Marshal.GetFunctionPointerForDelegate(_ds5); _ds6 = new cef_app_t.get_browser_process_handler_delegate(get_browser_process_handler); _self->_get_browser_process_handler = Marshal.GetFunctionPointerForDelegate(_ds6); _ds7 = new cef_app_t.get_render_process_handler_delegate(get_render_process_handler); _self->_get_render_process_handler = Marshal.GetFunctionPointerForDelegate(_ds7); }
private int has_at_least_one_ref(cef_app_t *self) { lock (SyncRoot) { return(_refct != 0 ? 1 : 0); } }
/// <summary> /// Provides an opportunity to view and/or modify command-line arguments before /// processing by CEF and Chromium. The |process_type| value will be empty for /// the browser process. Do not keep a reference to the CefCommandLine object /// passed to this method. The CefSettings.command_line_args_disabled value /// can be used to start with an empty command-line object. Any values /// specified in CefSettings that equate to command-line arguments will be set /// before this method is called. Be cautious when using this method to modify /// command-line arguments for non-browser processes as this may result in /// undefined behavior including crashes. /// </summary> // protected abstract void OnBeforeCommandLineProcessing(cef_string_t* process_type, cef_command_line_t* command_line); private void on_register_custom_schemes(cef_app_t *self, cef_scheme_registrar_t *registrar) { CheckSelf(self); throw new NotImplementedException(); // TODO: CefApp.OnRegisterCustomSchemes }
public static extern int execute_process(cef_main_args_t *args, cef_app_t *application, void *windows_sandbox_info);
private int get_refct(cef_app_t *self) { return(_refct); }
/// <summary> /// Return the handler for functionality specific to the browser process. This /// method is called on multiple threads in the browser process. /// </summary> // protected abstract cef_browser_process_handler_t* GetBrowserProcessHandler(); private cef_render_process_handler_t *get_render_process_handler(cef_app_t *self) { CheckSelf(self); throw new NotImplementedException(); // TODO: CefApp.GetRenderProcessHandler }
/// <summary> /// Provides an opportunity to register custom schemes. Do not keep a reference /// to the |registrar| object. This method is called on the main thread for /// each process and the registered schemes should be the same across all /// processes. /// </summary> // protected abstract void OnRegisterCustomSchemes(cef_scheme_registrar_t* registrar); private cef_resource_bundle_handler_t *get_resource_bundle_handler(cef_app_t *self) { CheckSelf(self); throw new NotImplementedException(); // TODO: CefApp.GetResourceBundleHandler }
public CefApp(cef_app_t *instance) : base((cef_base_ref_counted_t *)instance) { }
public static extern int execute_process(cef_main_args_t *args, cef_app_t *application);
internal static void Free(cef_app_t *ptr) { Marshal.FreeHGlobal((IntPtr)ptr); }
private int has_one_ref(cef_app_t *self) { lock (SyncRoot) { return(_refct == 1 ? 1 : 0); } }
public static extern int initialize(cef_main_args_t *args, cef_settings_t *settings, cef_app_t *application);
public static extern int initialize(cef_main_args_t *args, cef_settings_t *settings, cef_app_t *application, void *windows_sandbox_info);
private void on_before_command_line_processing(cef_app_t *self, cef_string_t *process_type, cef_command_line_t *command_line) { CheckSelf(self); throw new NotImplementedException(); // TODO: CefApp.OnBeforeCommandLineProcessing }