internal RequestHandler(BrowserClient client) { this.client = client; resourceRequestHandler = new CfxResourceRequestHandler(); this.GetResourceRequestHandler += RequestHandler_GetResourceRequestHandler; resourceRequestHandler.GetResourceHandler += ResourceRequestHandler_GetResourceHandler; }
internal static void get_resource_request_handler(IntPtr gcHandlePtr, out IntPtr __retval, IntPtr browser, out int browser_release, IntPtr frame, out int frame_release, IntPtr request, out int request_release, int is_navigation, int is_download, IntPtr request_initiator_str, int request_initiator_length, out int disable_default_handling) { var self = (CfxRequestContextHandler)System.Runtime.InteropServices.GCHandle.FromIntPtr(gcHandlePtr).Target; if (self == null || self.CallbacksDisabled) { __retval = default(IntPtr); browser_release = 1; frame_release = 1; request_release = 1; disable_default_handling = default(int); return; } var e = new CfxRequestContextHandlerGetResourceRequestHandlerEventArgs(); e.m_browser = browser; e.m_frame = frame; e.m_request = request; e.m_is_navigation = is_navigation; e.m_is_download = is_download; e.m_request_initiator_str = request_initiator_str; e.m_request_initiator_length = request_initiator_length; self.m_GetResourceRequestHandler?.Invoke(self, e); e.m_isInvalid = true; browser_release = e.m_browser_wrapped == null? 1 : 0; frame_release = e.m_frame_wrapped == null? 1 : 0; request_release = e.m_request_wrapped == null? 1 : 0; disable_default_handling = e.m_disable_default_handling; __retval = CfxResourceRequestHandler.Unwrap(e.m_returnValue); }
/// <summary> /// Set the return value for the <see cref="CfxRequestContextHandler.GetResourceRequestHandler"/> callback. /// Calling SetReturnValue() more then once per callback or from different event handlers will cause an exception to be thrown. /// </summary> public void SetReturnValue(CfxResourceRequestHandler returnValue) { CheckAccess(); if (returnValueSet) { throw new CfxException("The return value has already been set"); } returnValueSet = true; this.m_returnValue = returnValue; }