Exemple #1
0
 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;
 }