bool IRequestHandler.OnCertificateError(IWebBrowser browserControl, IBrowser browser, CefErrorCode errorCode, string requestUrl, ISslInfo sslInfo, IRequestCallback callback) { try { //To allow certificate //callback.Continue(true); //return true; return false; } finally { callback.Dispose(); } }
CefReturnValue IResourceRequestHandler.OnBeforeResourceLoad(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IRequestCallback callback) { if (RequestsFiltering.ShouldBeBlocked(request.Url)) { if (!callback.IsDisposed) { callback.Dispose(); } return(CefReturnValue.Cancel); } if (UserAgent != null) { var headers = request.Headers; headers[@"User-Agent"] = UserAgent; request.Headers = headers; } return(CefReturnValue.Continue); }
CefReturnValue IRequestHandler.OnBeforeResourceLoad(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IRequestCallback callback) { try { //Note to Redirect simply set the request Url //if (request.Url.StartsWith("https://www.google.com", StringComparison.OrdinalIgnoreCase)) //{ // request.Url = "https://github.com/"; //} //Callback in async fashion //callback.Continue(true); //return CefReturnValue.ContinueAsync; } finally { callback.Dispose(); } return CefReturnValue.Continue; }
public bool OnQuotaRequest(IWebBrowser chromiumWebBrowser, IBrowser browser, string originUrl, long newSize, IRequestCallback callback) { callback.Dispose(); return(false); }
public bool OnCertificateError(IWebBrowser chromiumWebBrowser, IBrowser browser, CefErrorCode errorCode, string requestUrl, ISslInfo sslInfo, IRequestCallback callback) { callback.Dispose(); return(false); }
bool IRequestHandler.OnCertificateError(IWebBrowser browserControl, IBrowser browser, CefErrorCode errorCode, string requestUrl, ISslInfo sslInfo, IRequestCallback callback) { callback.Dispose(); return(false); }
bool IRequestHandler.OnQuotaRequest(IWebBrowser browserControl, IBrowser browser, string originUrl, long newSize, IRequestCallback callback) { try { //Accept Request to raise Quota //callback.Continue(true); //return true; return false; } finally { callback.Dispose(); } }
// JavaScript & Plugins public virtual bool OnQuotaRequest(IWebBrowser browserControl, IBrowser browser, string originUrl, long newSize, IRequestCallback callback) { callback.Dispose(); return(false); }
public CefReturnValue OnBeforeResourceLoad(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IRequestCallback callback) { // You can also check the URL here callback.Dispose(); return(CefReturnValue.Continue); }
CefReturnValue IRequestHandler.OnBeforeResourceLoad(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IRequestCallback callback) { try { Uri url; if (Uri.TryCreate(request.Url, UriKind.Absolute, out url) == false) { throw new Exception("Request to \"" + request.Url + "\" can't continue, not a valid URI"); } if (WebEntryInfo != null) { if (WebEntryInfo.LockIntReqType == LockIntReqType.BLOCK_NONE) { //Console.WriteLine("Load BLOCK_NONE resource: " + request.Url); } else if (WebEntryInfo.LockIntReqType == LockIntReqType.BLOCK_All_EXPECT_ENTRY_POINT) { //todo test string baseUrl = (new Uri(WebEntryInfo.Url)).AbsoluteUri; bool same = baseUrl.Equals(request.Url); if (same) { //Console.WriteLine("Load same resource: " + request.Url); } else { //Console.WriteLine("-------Blocked resource: " + request.Url); callback.Dispose(); return(CefReturnValue.Cancel); } } else if (WebEntryInfo.LockIntReqType == LockIntReqType.BLOCK_All_OTHER_DOMAIN) { string baseUrl = (new Uri(WebEntryInfo.Url)).AbsoluteUri; int lastSlash = baseUrl.LastIndexOf("/"); if (lastSlash > -1 && request.Url.Length >= lastSlash) { bool same = baseUrl.Substring(0, lastSlash).Equals(request.Url.Substring(0, lastSlash)); if (same) { //Console.WriteLine("Load same resource: " + request.Url); } else { //Console.WriteLine("-------Blocked resource: " + request.Url); callback.Dispose(); return(CefReturnValue.Cancel); } } else { //Console.WriteLine("Load not checked resource: " + request.Url); } } } else { // Console.WriteLine("Load no WebEtryInfo resource: " + request.Url); } if (WebEntryInfo != null && WebEntryInfo.JUserAgent != null) { var headers = request.Headers; var userAgent = headers["User-Agent"]; headers["User-Agent"] = WebEntryInfo.JUserAgent.Data; request.Headers = headers; } //NOTE: When executing the callback in an async fashion need to check to see if it's disposed if (!callback.IsDisposed) { using (callback) { if (request.Method == "POST") { using (var postData = request.PostData) { if (postData != null) { var elements = postData.Elements; var charSet = request.GetCharSet(); foreach (var element in elements) { if (element.Type == PostDataElementType.Bytes) { var body = element.GetBody(charSet); } } } } } } } } catch (Exception ex) { Log.LogError(ex); } return(CefReturnValue.Continue); }
/// <summary> /// Called before a resource request is loaded. For async processing return <see cref="CefReturnValue.ContinueAsync"/> /// and execute <see cref="IRequestCallback.Continue"/> or <see cref="IRequestCallback.Cancel"/> /// </summary> /// <param name="browserControl">The ChromiumWebBrowser control</param> /// <param name="browser">the browser object</param> /// <param name="frame">The frame object</param> /// <param name="request">the request object - can be modified in this callback.</param> /// <param name="callback">Callback interface used for asynchronous continuation of url requests.</param> /// <returns>To cancel loading of the resource return <see cref="CefReturnValue.Cancel"/> /// or <see cref="CefReturnValue.Continue"/> to allow the resource to load normally. For async /// return <see cref="CefReturnValue.ContinueAsync"/></returns> public virtual CefReturnValue OnBeforeResourceLoad(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IRequestCallback callback) { callback.Dispose(); return(CefReturnValue.Continue); }
/// <summary> /// Called when JavaScript requests a specific storage quota size via the webkitStorageInfo.requestQuota function. For async /// processing return true and execute <see cref="IRequestCallback.Continue"/> at a later time to grant or deny the request or /// <see cref="IRequestCallback.Cancel"/> to cancel. /// </summary> /// <param name="chromiumWebBrowser">The ChromiumWebBrowser control.</param> /// <param name="browser">the browser object.</param> /// <param name="originUrl">the origin of the page making the request.</param> /// <param name="newSize">is the requested quota size in bytes.</param> /// <param name="callback">Callback interface used for asynchronous continuation of url requests.</param> /// <returns> /// Return false to cancel the request immediately. Return true to continue the request and call /// <see cref="IRequestCallback.Continue"/> either in this method or at a later time to grant or deny the request. /// </returns> protected virtual bool OnQuotaRequest(IWebBrowser chromiumWebBrowser, IBrowser browser, string originUrl, long newSize, IRequestCallback callback) { callback.Dispose(); return false; }
bool IRequestHandler.OnCertificateError(IWebBrowser browserControl, IBrowser browser, CefErrorCode errorCode, string requestUrl, ISslInfo sslInfo, IRequestCallback callback) { callback.Dispose(); return false; }
public bool OnQuotaRequest(IWebBrowser browserControl, IBrowser browser, string originUrl, long newSize, IRequestCallback callback) { if (!callback.IsDisposed) { callback.Dispose(); } return true; }
public CefReturnValue OnBeforeResourceLoad(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IRequestCallback callback) { if (RequestsFiltering.ShouldBeBlocked(request.Url)) { if (!callback.IsDisposed) { callback.Dispose(); } return CefReturnValue.Cancel; } var headers = request.Headers; headers[@"User-Agent"] = UserAgent; request.Headers = headers; return CefReturnValue.Continue; }
public bool OnCertificateError(IWebBrowser browserControl, IBrowser browser, CefErrorCode errorCode, string requestUrl, ISslInfo sslInfo, IRequestCallback callback) { if (!callback.IsDisposed) { callback.Dispose(); } Logging.Warning(requestUrl); return false; }