public async Task CanMakeUrlRequest()
        {
            using (var browser = new ChromiumWebBrowser("https://code.jquery.com/jquery-3.4.1.min.js"))
            {
                await browser.LoadPageAsync();

                var mainFrame = browser.GetMainFrame();
                Assert.True(mainFrame.IsValid);


                IURLRequest urlRequest = null;

                var t             = new TaskCompletionSource <string>();
                var wasCached     = false;
                var requestClient = new URLRequestClient(
                    (IURLRequest request, byte[] responseBody) =>
                {
                    wasCached = request.ResponseWasCached();
                    t.TrySetResult(System.Text.Encoding.UTF8.GetString(responseBody));
                }
                    );

                //Make the request on the CEF UI Thread
                await Cef.UIThreadTaskFactory.StartNew(delegate
                {
                    var request = mainFrame.CreateRequest(false);

                    request.Method = "GET";
                    request.Url    = "https://code.jquery.com/jquery-3.4.1.min.js";
                    urlRequest     = mainFrame.CreateURLRequest(request, requestClient);
                });

                var stringResult = await t.Task;

                Assert.True(!string.IsNullOrEmpty(stringResult));
                Assert.True(wasCached);
            }
        }
 public void OnRequestComplete(IURLRequest request)
 {
     CompleteAction(request, ResponseBody.ToArray());
 }
 public void OnUploadProgress(IURLRequest request, long current, long total)
 {
     return;
 }
 public void OnDownloadData(IURLRequest request, byte[] data)
 {
     StreamWriter.Write(data);
 }