namespace Xilium.CefGlue { using System; using System.Collections.Generic; using System.Diagnostics; using System.Runtime.InteropServices; using Xilium.CefGlue.Interop; /// /// Implement this interface to filter cookies that may be sent or received from /// resource requests. The methods of this class will be called on the IO thread /// unless otherwise indicated. /// public abstract unsafe partial class CefCookieAccessFilter { private int can_send_cookie(cef_cookie_access_filter_t* self, cef_browser_t* browser, cef_frame_t* frame, cef_request_t* request, cef_cookie_t* cookie) { CheckSelf(self); var m_browser = CefBrowser.FromNativeOrNull(browser); var m_frame = CefFrame.FromNativeOrNull(frame); var m_request = CefRequest.FromNative(request); var m_cookie = CefCookie.FromNative(cookie); var m_result = CanSendCookie(m_browser, m_frame, m_request, m_cookie); return m_result ? 1 : 0; } /// /// Called on the IO thread before a resource request is sent. The |browser| /// and |frame| values represent the source of the request, and may be NULL for /// requests originating from service workers or CefURLRequest. |request| /// cannot be modified in this callback. Return true if the specified cookie /// can be sent with the request or false otherwise. /// protected abstract bool CanSendCookie(CefBrowser browser, CefFrame frame, CefRequest request, CefCookie cookie); private int can_save_cookie(cef_cookie_access_filter_t* self, cef_browser_t* browser, cef_frame_t* frame, cef_request_t* request, cef_response_t* response, cef_cookie_t* cookie) { CheckSelf(self); var m_browser = CefBrowser.FromNativeOrNull(browser); var m_frame = CefFrame.FromNativeOrNull(frame); var m_request = CefRequest.FromNative(request); var m_response = CefResponse.FromNative(response); var m_cookie = CefCookie.FromNative(cookie); var m_result = CanSaveCookie(m_browser, m_frame, m_request, m_response, m_cookie); return m_result ? 1 : 0; } /// /// Called on the IO thread after a resource response is received. The /// |browser| and |frame| values represent the source of the request, and may /// be NULL for requests originating from service workers or CefURLRequest. /// |request| cannot be modified in this callback. Return true if the specified /// cookie returned with the response can be saved or false otherwise. /// protected abstract bool CanSaveCookie(CefBrowser browser, CefFrame frame, CefRequest request, CefResponse response, CefCookie cookie); } }