示例#1
0
 private void CheckSelf(cef_app_t *self)
 {
     if (_self != self)
     {
         throw ExceptionBuilder.InvalidSelfReference();
     }
 }
示例#2
0
        /// <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());
        }
示例#3
0
文件: CefApp.g.cs 项目: whztt07/SDK
 protected virtual void Dispose(bool disposing)
 {
     if (_self != null)
     {
         cef_app_t.Free(_self);
         _self = null;
     }
 }
示例#4
0
        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);
        }
示例#5
0
        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);
        }
示例#6
0
        /// <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());
        }
示例#7
0
 protected virtual void Dispose(bool disposing)
 {
     if (_self != null)
     {
         cef_app_t.Free(_self);
         _self = null;
     }
 }
示例#8
0
        /// <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);
            }
        }
示例#9
0
        // 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));
        }
示例#10
0
文件: cef_app_t.cs 项目: qkb/CefLite
        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;
        }
示例#11
0
        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();
        }
示例#12
0
        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);
        }
示例#13
0
        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();
        }
示例#14
0
        // 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));
        }
示例#15
0
 private void add_ref(cef_app_t *self)
 {
     lock (SyncRoot)
     {
         var result = ++_refct;
         if (result == 1)
         {
             lock (_roots) { _roots.Add((IntPtr)_self, this); }
         }
     }
 }
示例#16
0
 private int release(cef_app_t *self)
 {
     lock (SyncRoot)
     {
         var result = --_refct;
         if (result == 0)
         {
             lock (_roots) { _roots.Remove((IntPtr)_self); }
         }
         return(result);
     }
 }
示例#17
0
        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
        }
示例#18
0
        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);
        }
示例#19
0
文件: CefApp.g.cs 项目: whztt07/SDK
        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);
        }
示例#20
0
 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
        }
示例#22
0
 public static extern int execute_process(cef_main_args_t *args, cef_app_t *application, void *windows_sandbox_info);
示例#23
0
 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
        }
示例#26
0
 public CefApp(cef_app_t *instance)
     : base((cef_base_ref_counted_t *)instance)
 {
 }
示例#27
0
 public static extern int execute_process(cef_main_args_t *args, cef_app_t *application);
示例#28
0
 internal static void Free(cef_app_t *ptr)
 {
     Marshal.FreeHGlobal((IntPtr)ptr);
 }
示例#29
0
 private int has_one_ref(cef_app_t *self)
 {
     lock (SyncRoot) { return(_refct == 1 ? 1 : 0); }
 }
示例#30
0
 public static extern int initialize(cef_main_args_t *args, cef_settings_t *settings, cef_app_t *application);
示例#31
0
 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
 }