internal static void on_before_plugin_load(IntPtr gcHandlePtr, out int __retval, IntPtr mime_type_str, int mime_type_length, IntPtr plugin_url_str, int plugin_url_length, int is_main_frame, IntPtr top_origin_url_str, int top_origin_url_length, IntPtr plugin_info, out int plugin_info_release, ref int plugin_policy)
        {
            var self = (CfxRequestContextHandler)System.Runtime.InteropServices.GCHandle.FromIntPtr(gcHandlePtr).Target;

            if (self == null || self.CallbacksDisabled)
            {
                __retval            = default(int);
                plugin_info_release = 1;
                return;
            }
            var e = new CfxOnBeforePluginLoadEventArgs();

            e.m_mime_type_str         = mime_type_str;
            e.m_mime_type_length      = mime_type_length;
            e.m_plugin_url_str        = plugin_url_str;
            e.m_plugin_url_length     = plugin_url_length;
            e.m_is_main_frame         = is_main_frame;
            e.m_top_origin_url_str    = top_origin_url_str;
            e.m_top_origin_url_length = top_origin_url_length;
            e.m_plugin_info           = plugin_info;
            e.m_plugin_policy         = plugin_policy;
            self.m_OnBeforePluginLoad?.Invoke(self, e);
            e.m_isInvalid       = true;
            plugin_info_release = e.m_plugin_info_wrapped == null? 1 : 0;
            plugin_policy       = e.m_plugin_policy;
            __retval            = e.m_returnValue ? 1 : 0;
        }
        internal static void on_before_plugin_load(IntPtr gcHandlePtr, out int __retval, IntPtr mime_type_str, int mime_type_length, IntPtr plugin_url_str, int plugin_url_length, IntPtr top_origin_url_str, int top_origin_url_length, IntPtr plugin_info, ref int plugin_policy)
        {
            var self = (CfxRequestContextHandler)System.Runtime.InteropServices.GCHandle.FromIntPtr(gcHandlePtr).Target;

            if (self == null)
            {
                __retval = default(int);
                return;
            }
            var e            = new CfxOnBeforePluginLoadEventArgs(mime_type_str, mime_type_length, plugin_url_str, plugin_url_length, top_origin_url_str, top_origin_url_length, plugin_info, plugin_policy);
            var eventHandler = self.m_OnBeforePluginLoad;

            if (eventHandler != null)
            {
                eventHandler(self, e);
            }
            e.m_isInvalid = true;
            if (e.m_plugin_info_wrapped == null)
            {
                CfxApi.cfx_release(e.m_plugin_info);
            }
            plugin_policy = e.m_plugin_policy;
            __retval      = e.m_returnValue ? 1 : 0;
        }