/// <summary> /// Called when there is no more data to be processed. It is expected /// that whatever data was retained in the last ProcessData() call, it /// should be returned now by setting |remainder| if appropriate. /// </summary> private void drain(cef_content_filter_t* self, cef_stream_reader_t** remainder) { ThrowIfObjectDisposed(); CefStreamReader m_remainder; this.Drain(out m_remainder); if (m_remainder != null) { *remainder = m_remainder.GetNativePointerAndAddRef(); } }
/// <summary> /// Set |substitute_data| to the replacement for the data in |data| if /// data should be modified. /// </summary> private void process_data(cef_content_filter_t* self, /*const*/ void* data, int data_size, cef_stream_reader_t** substitute_data) { ThrowIfObjectDisposed(); var m_stream = new UnmanagedMemoryStream((byte*)data, data_size, data_size, FileAccess.Read); CefStreamReader m_substitute_data; this.ProcessData(m_stream, out m_substitute_data); if (m_substitute_data != null) { *substitute_data = m_substitute_data.GetNativePointerAndAddRef(); } m_stream.Dispose(); }
/// <summary> /// Called on the UI thread after a response to the resource request is /// received. Set |filter| if response content needs to be monitored /// and/or modified as it arrives. /// </summary> private void on_resource_response(cef_request_handler_t* self, cef_browser_t* browser, /*const*/ cef_string_t* url, cef_response_t* response, cef_content_filter_t** filter) { ThrowIfObjectDisposed(); var m_browser = CefBrowser.From(browser); var m_url = cef_string_t.ToString(url); var m_response = CefResponse.From(response); CefContentFilter m_filter; this.OnResourceResponse(m_browser, m_url, m_response, out m_filter); if (m_filter != null) { *filter = m_filter.GetNativePointerAndAddRef(); } }