Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
  • Oct 10 2016 09:45
    User @amaitland unbanned @aolko
  • Oct 10 2016 09:36
    @amaitland banned @aolko
  • Feb 11 2016 05:56
    User @amaitland unbanned @miyakedev from this room
  • Feb 10 2016 19:59
    @amaitland banned @miyakedev
Okay, thanks for the answer. How can I create one?
Peter "Shawty" Shaw
@blitzmax01 that depends entirely on how your application is written, if your using winforms, then you'll need to build the dialog using a windows form and associated controls, if it's in WPF, you'll need to do similar but using WPF controls, and if your UI is HTML based then you'll need to set up the appropriate hooks in your app to allow you to input the data in your html UI and submit it back to the app.
Francois Larouche

@jsoldi Hello, I did the test with my own solution and I do get the OK response. I get that response:

HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: no-store, must-revalidate, max-age=0
Connection: keep-alive
Content-Length: 2
Content-Security-Policy: frame-ancestors 'none';
Content-Type: text/plain;charset=UTF-8
Date: Thu, 04 Nov 2021 14:19:10 GMT
Server: iccp-backend
Set-Cookie: BID=HE0lJVpvUyFA2YqAfp73OBvOQE_DP3b5dMTA-BsfC_144uocKqPFuecprug5WeDR0LvaZe0fRnLct8jc; Path=/; Domain=.ticketmaster.co.uk; Max-Age=31536000; Expires=Fri, 04 Nov 2022 14:19:09 GMT; Secure; HttpOnly; SameSite=None
Set-Cookie: SID=mBvo1ICwHIDHJ7ygTfmXZKo-pQhKBaN59DST8zQm-mMGguZh1uhGfWyWogc4tUQZtfLIRyA-GpfZXIsb; Path=/; Domain=.ticketmaster.co.uk; Secure; HttpOnly; SameSite=None
Set-Cookie: sticky=ABDC; Domain=.ticketmaster.co.uk; Path=/
Set-Cookie: ab-myacc=iccp; Domain=.ticketmaster.co.uk; Path=/
TMPS-Correlation-Id: 6acdc200-cfd3-4228-86b6-75baac67f432
Vary: Accept-Encoding
Via: 1.1 varnish, 1.1 varnish
X-Cache-Hits: 0, 0
X-Content-Type-Options: nosniff
X-Frame-Options: Deny
X-Page-Type: api
X-Served-By: cache-yyz4551-YYZ, cache-yyz4551-YYZ
X-TM-BID: jP4ADlbUvBzV7CMrCi8sZZ0aTGYaq4/9T/PW0I/Pdg97zhmtuvdopHndJQpIBMt6/cqzy/49Ce8Hs6iomUsQbMSQIslXMpOSMuJTsb3L4DAyNdU9MXeDeRD8/v6XDPrQ
X-TM-SID: ggtQEQil+Z6ga0Q8OZmH33k7VbIw4COS/Nh2zKYji9j0vGNzVwUimQa3Vt2wifu2Gg8LBa71VvLqEwWLHc6Zq+qdJo9W0vmwbNXLiX6saTq4+z7Bs6GEfWrxQ55sI9W8
X-Timer: S1636035550.816619,VS0,VE226
X-XSS-Protection: 1
x-d-debug-state: SUCCESS

My theory is that along the many overrides and interception the code is not right. It happened to me many times as I use a lot of customized event handlers and overrides.

One thing I notice in your code is that you keep reusing the same custom request handler. In my case I create a new one each time to ensure that each request has its own context and is not overwrite by a concurrent request since it shares the same object. In the examples I saw it was always a new instance. I think you should start with that, let me know if it works.

Francois Larouche
I meant you keep reusing the same IResourceRequestHandler not RequestHandler :)
Alex Maitland

OK done. I also mention there that this specific request looks "weird" on Chrome too, so I wonder if this is a Chromium bug.

@jsoldi Possibly a Chromium BUG, it's also possible that CEF ignores the response. You'd need to debug the source to find out for sure.

What's changed on the CefSharp lifecycle or maybe I'm going smth wrong?
Here's the code - https://pastebin.com/EcZYssWD, hang on line 109.

@serhiy1994 Start by checking the log file. See https://github.com/cefsharp/CefSharp/wiki/Trouble-Shooting#log-file

I need more information before I can speculate as to what's going on.

9 replies
@larouchefrancois @amaitland Actually I'm pretty sure I know what's happening (I also mention this on the CEF forum post ). You will get a 200 response, but no response body, so you'll get a call to OnResourceResponse with a 200 response, but no call to OnResourceLoadComplete. The reason is that the script calls fetch but doesn't call text or json to get the response body, so the request hangs there forever. I'm not sure if this is the expected behavior thought, since I've noted that doing fetch on HTML documents automatically pulls the content body regardless of whether you call text or not, but it seems that it doesn't do that with JSON requests, so I'm still not sure if this is a bug or not. I don't think CEF is ignoring the request because the error code on OnResourceResponse is None and one of the conditions to ignore it is for the error code to be ERR_ABORTED, unless it changes to aborted later? I'll see if I can debug that and report back.
Francois Larouche
@jsoldi when I test the url I do get a response body of 2 characters that is OK (see my response). So it's not a bug in the code. unless you do some handling somewhere else that I didn't see from your snippet code. I believe that your issue might be because you don't get a new instance of the ResourceRequestHandler, but I might be mistaken. It cost nothing to change the code with new to test. Beyond that I cannot and it was only my 2c. good luck
@larouchefrancois so you do get a call to OnResourceLoadComplete? Are you directly visiting the cookie URL or ticketmaster.co.uk?
5 replies
Francois Larouche
@jsoldi see pic below (don't know why but cannot paste that pic in the thread). I go inside the OnResourceLoadComplete with the url https://www.ticketmaster.co.uk/api/cookies (in my watch list below circled in red) and when I look at the response content length it gives 2. Also you can see the response is OK with my args.ResponseBody (it's a custom argument that was taken from the initial OnResourceLoadComplete. The code you see is the event I invoked from there

@larouchefrancois I tried what you suggested:

    public class MyRequestHandler : RequestHandler
        protected override IResourceRequestHandler GetResourceRequestHandler(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, bool isNavigation, bool isDownload, string requestInitiator, ref bool disableDefaultHandling)
            return new MyResourceHandler();

    public class MyResourceHandler : ResourceRequestHandler
        protected override bool OnResourceResponse(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response)
            System.Diagnostics.Debug.WriteLine($"OnResourceResponse [{request.Identifier}]: {request.Url}");
            return base.OnResourceResponse(chromiumWebBrowser, browser, frame, request, response);

        protected override CefReturnValue OnBeforeResourceLoad(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IRequestCallback callback)
            System.Diagnostics.Debug.WriteLine($"OnBeforeResourceLoad [{request.Identifier}]: {request.Url}");
            return base.OnBeforeResourceLoad(chromiumWebBrowser, browser, frame, request, callback);

        protected override void OnResourceLoadComplete(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
            System.Diagnostics.Debug.WriteLine($"OnResourceLoadComplete [{request.Identifier}]: {request.Url}");
            base.OnResourceLoadComplete(chromiumWebBrowser, browser, frame, request, response, status, receivedContentLength);

But only got these two:

OnBeforeResourceLoad [863083]: https://www.ticketmaster.co.uk/api/cookies
OnResourceResponse [863083]: https://www.ticketmaster.co.uk/api/cookies

No call to OnResourceLoadComplete except after I navigated away again, I guess because CEF disposed the request:

OnResourceLoadComplete [863083]: https://www.ticketmaster.co.uk/api/cookies

So I wonder if you're doing something else that I'm not. I literally just downloaded the latest version of CefSharp and added the code. I originally thought it worked but it was because I added some code to ignore this specific request which then forgot to remove.

Maybe you also navigated away from ticketmaster.co.uk and that's when you got the call to OnResourceLoadComplete?
12 replies
Hi, I'm using CefSharp in a winforms C# application, showing a SVG animation on 3 monitors. Users are complaining of high CPU usage resulting in high fan noise. Does anyone have any suggestions on getting optimal performance for rendering SVG; eg Settings etc Any help appreciated.
Alex Maitland

CefSharp in a winforms C# application

@citylogic-au What version are you using?

Users are complaining of high CPU usage resulting in high fan noise

How does Chrome at the same version behave on the same machine?

Does anyone have any suggestions on getting optimal performance for rendering SVG

Performance is largely tied to the Chromium version. I'm not aware of any SVG rendering specific options. Try searching in the Chromium issue tracker.

As a general debugging step you can load chrome://gpu/ in both Chrome and CefSharp to compare the GPU Acceleration.

4 replies
Hi all, is there a way to change the region / location to South Africa only in CefSharp ? Some webpages jumped to CZech location which isn't supposed to happen. Secondly, how to disable Cloudflare Security Check (CAPTCHA) when browsing the website.
Alex Maitland

is there a way to change the region / location to South Africa only in CefSharp

@JaredDrakeZA You can change the following:

How does the website determine region? IP Address? Accept-Language header? timezone?

Secondly, how to disable Cloudflare Security Check (CAPTCHA) when browsing the website.

If CloudFlare has a server side component to it's captcha then it's unlikely you can disable it.
I'd search for something like headless chrome cloudflare.

1 reply
RequestHandler.OnSelectClientCertificate () is not being called after CefSharp.Wpf.NETCore 89.0.170. Create a NET5 WPF project. Add a reference to CefSharp.Wpf.NETCore version 89.0.170 or lower. Add a ChromiumWebBrowser to the MainWindow.xaml. In the code behind set the address of a site that uses client certificates, a custom RequestHandler and the LoadError eventhandler. Build and run. Up until 89.0.170 the OnSelectClientCertificate() will be called. Change the PackageReference to version 90.5.70-pre or higher. Clean, Build and Run. Now the error eventhandler will hit with: ERR_SSL_CLIENT_AUTH_CERT_NEEDED. But only if the visiting website ask for a certificate after a redirect. Testsites like https://certauth.idrix.fr/ always work. I looked at all the changes in CEFSharp/CEF/Chromium starting in version 90/4430/90.0.4430.30. I can't find any clues on why it behaves differently. Any suggestions on where to look?
Alex Maitland
@buhtig0815 How does Chrome behave at the same version? I don't recall any reports of similar issues. You can try asking on https://magpcss.org/ceforum/viewforum.php?f=6 to see if anyone in the wider CEF community has experienced a similar problem.
@amaitland Mmmh, apparently I didn't search in the right places. On the link you provided it is sitting there on the top of the page. So yes, it seems to be a CEF issue https://magpcss.org/ceforum/viewtopic.php?f=6&t=18693&sid=3ddb0b974945aac491af6dd825b47419 handled here https://bitbucket.org/chromiumembedded/cef/issues/3200/sso-throwing-onloaderrors-with. A trial fix seems to be available today (2021-11-10). We will just wait for the next version and hope for the best. Thanks!
Alex Maitland

https://bitbucket.org/chromiumembedded/cef/issues/3200/sso-throwing-onloaderrors-with. A trial fix seems to be available today (2021-11-10).

@buhtig0815 I've updated master with the latest beta CEF build and you can test out the fix using a CI nuget package available from https://www.myget.org/gallery/cefsharp
Changes are included in 96.0.120-CI4308

If the problem still reproduces then if you have an example url that reproduces the problem then it's probably worth posting on the bitbucket issue for testing purposes.


Hello, firstly, it has been awhile but I am grateful to see this project still being maintained @amaitland - thank you.

I noticed it is now possible to take screenshots via DevTools, which is awesome. However, I am trying to capture a full page screenshot (that is, capture everything beyond the current viewport) but my results always return a screenshot of the current viewport (that is, what the user is currently looking it).

My code is based on the example in the docs: https://github.com/cefsharp/CefSharp/wiki/General-Usage#screenshots but I note an optional (and experimental) boolean parameter is available captureBeyondViewport. Regardless, I end up with a screenshot of just the current view. Is it possible to take a fullpage screenshot via this method?

 using (var devToolsClient = uiTabbedBrowserControl.CurrentTab.Browser.GetDevToolsClient())
                var result = await devToolsClient.Page.CaptureScreenshotAsync(null, null, null, null, true);
                File.WriteAllBytes(@"C:\Users\joe\Desktop\test1.png", result.Data);

I am rusty around the edges, so am happy to concede I am missing something blindingly obvious. Thank you for any help, as always.
Version: WinForms, 95.7.14

Alex Maitland

Hello, firstly

Hi @joe-williams-cccu, it has been a while :smile:

it has been awhile but I am grateful to see this project still being maintained

yep, still going :smile:

I am rusty around the edges, so am happy to concede I am missing something blindingly obvious.

The DevTools protocol in CefSharp is generated, provides raw access to the underlying protocol. I am working on a cutdown version of PuppeteerSharp specifically for CefSharp that will provide a nicer API for using the DevTools protocol. See https://github.com/cefsharp/PuppeteerSharp.Embedded#puppeteersharp-embedded-cefsharp (There's no official nuget package as yet).

Anyway back to the question. the upstream documentation is actually fairly lacking. Little bit of research and it looks like you need to provide the clip param also. See https://bugs.chromium.org/p/chromium/issues/detail?id=1198576#c17

Tested with WinForms version 95.7.141 and the following appears to work:

using (var devToolsClient = browser.GetDevToolsClient())
    //Get the content size
    var layoutMetricsResponse = await devToolsClient.Page.GetLayoutMetricsAsync();
    var contentSize = layoutMetricsResponse.ContentSize;

    var viewPort = new Viewport()
        Height= contentSize.Height,
        Width = contentSize.Width,
        X = 0,
        Y = 0,
        Scale = 1 

    // https://bugs.chromium.org/p/chromium/issues/detail?id=1198576#c17
    var result = await devToolsClient.Page.CaptureScreenshotAsync(clip: viewPort, fromSurface:true, captureBeyondViewport: true);

    return result.Data;
@amaitland As always, you are tremendously helpful! Thank you. (I've sent a small donation as a thank you - it will never be enough for your efforts in this project, though 😋)
Łukasz Szafirski

Hi, I have following code

        private async Task ExecuteAsync(Func<ChromiumWebBrowser, Task> action)
            using var browser = new ChromiumWebBrowser(new HtmlString(htmlContent));
            var loadResponse = await browser.WaitForInitialLoadAsync();

            if (loadResponse.Success)
                await action(browser);
                    "Chromium browser failed to load with error code: {ErrorCode}",


When called, application hangs on var loadResponse = await browser.WaitForInitialLoadAsync(); indefinitely.
If I remove this line exception is thrown instead that says:

System.Exception: 'The ChromiumWebBrowser instance creates the underlying Chromium Embedded Framework (CEF) browser instance in an async fashion. 
The undelying CefBrowser instance is not yet initialized. Use the IsBrowserInitializedChanged event and check the IsBrowserInitialized property to 
determine when the browser has been initialized.'

I have also tried subscribing to lifecycle events but they were never raised.

What should I do in this scenario?

2 replies
Krishna Chaitanya M

@amaitland In our application, we use CefSharp Winforms library and we open multiple instances CefSharp browsers in different tabs. There is an option to close the tab and the expectation is the CefSharp browser instance should get killed and it happens that way.

But, in some cases what we observe is even after all the tabs are closed in the application, still some of the CefSharp browser instances show up in the task manager. Is possible to happen from the runtime point of view?

Alex Maitland

Thank you.

@joe-williams-cccu You are most welcome :smile:

I've sent a small donation as a thank you

An unexpected birthday surprise, thank you very much! :smile:

Alex Maitland

still some of the CefSharp browser instances show up in the task manager.

@chaitanyajun12 The Network/Storage/Audio services, GPU Process,CrashPad Handlerprocesses are independent of the browser instances and will continue to run untilCef.Shutdown` is called.

Krishna Chaitanya M
@amaitland Yes there can be some processes present. But, I was of the assumption that the renderer process should not be present once the browser instance is closed. Am I correct on this?
Alex Maitland
@chaitanyajun12 Depends on the version. What version are you using?
Krishna Chaitanya M
@amaitland I'm using CefSharp 94.4.50.

I have a problem with cors after updating cefsharp.winforms from 79.1.360 to 95.7.141.

Uncaught DOMException: Blocked a frame with origin "akela://" from accessing a cross-origin frame.
    at Player._onLoadWorskpace (webpack:///./pages/player/controller.js?:462:38)
    at HTMLIFrameElement.dispatch (akela://common/assets/js/jquery-latest.min.js:2:41772)
    at HTMLIFrameElement.y.handle (akela://common/assets/js/jquery-latest.min.js:2:39791)
  • i have custom scheme for akela but do not have custom scheme for webpack (never needed to)
  • i have set header for Headers.Add("Access-Control-Allow-Origin", "*");

After update i had to remove (because of the changes):

            this.browser.BrowserSettings.FileAccessFromFileUrls = CefState.Enabled;
            this.browser.BrowserSettings.UniversalAccessFromFileUrls = CefState.Enabled;
            this.browser.BrowserSettings.WebSecurity = CefState.Enabled;

instead i included:

           //i thought this will help solve the issue (as a last resort, not really comfortable with this solution), but for some reason cors problem is still there (it feels like it is ignored?)
           // cefSettings.CefCommandLineArgs.Add("disable-web-security");
           //cefSettings.CefCommandLineArgs.Add("disable-features", "OutOfBlinkCors");

I am lost at what I can do to make it work again. I have a feeling that my command line arguments are being ignored maybe (at least disable-web-security)? Is there a way to check that those arguments are applied properly?

Francois Larouche

Hello all, hopefully it's an easy one.
I was wondering why some ajax requests are not detected in OnBeforeBrowse when I click in the browser link?
The specific case is as followed in client side code:

<a href="#" onclick="new Ajax.Updater('sidebar', '/account/signup_form', {asynchronous:true, evalScripts:true}); return false;">&lt;&lt; Register</a>

I can detect many types of XHR but not that one.

Alex Maitland

I'm using CefSharp 94.4.50.

@chaitanyajun12 Calling ChromiumWebBrowser.Dispose should close the associated CefSharp.BrowserSubProcess.exe render process instance. Starting in version 95 there is a spare render process that will be closed when Cef.Shutdown is called.

Make sure you are correctly disposing of the browser.

I have a feeling that my command line arguments are being ignored maybe

@dadloo If you load chrome://version/ in the ChromiumWebBrowser instance you should see the command line args

2 replies
Alex Maitland

I was wondering why some ajax requests are not detected in OnBeforeBrowse when I click in the browser link?

@larouchefrancois Do you mean OnBeforeResourceLoad?

3 replies
Alex Maitland

I have a problem with cors after updating cefsharp.winforms from 79.1.360 to 95.7.141.

@dadloo Are you using the file:/// scheme?

2 replies
Alex Maitland

cefSettings.CefCommandLineArgs.Add("disable-features", "OutOfBlinkCors");

@dadloo From memory it's no longer possible to disable OutOfBlinkCors, and a quick check confirms it.

1 reply
Krishna Chaitanya M
Thank you @amaitland. Will check.
Serhiy Mashkovskyi
Migrating from 90.6.5 to the new release. Is there any analogues to these old parameters?
config.FileAccessFromFileUrls = (!CrossDomainSecurity).ToCefState(); config.UniversalAccessFromFileUrls = (!CrossDomainSecurity).ToCefState(); config.ApplicationCache = ApplicationCache.ToCefState();
Alex Maitland

Migrating from 90.6.5 to the new release. Is there any analogues to these old parameters?

@serhiy1994 Breaking changes are listed in the Releases for each version on GitHub, you'll find details there.

Shishir Halaharvi

Hello, I am using CefSharp (WPF) for a VSIX project. When I try to run the program, I get a

  Message='The invocation of the constructor on type 'CefSharp.Wpf.ChromiumWebBrowser' that matches the specified binding constraints threw an exception.' Line number '19' and line position '10'.
   at System.Windows.Markup.XamlReader.RewrapException(Exception e, IXamlLineInfo lineInfo, Uri baseUri)
   at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
   at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
   at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
   at P_Inti.MyWindowControl.InitializeComponent() in C:\Dev\P-Inti\P-Inti\MyWindowControl.xaml:line 1

Inner Exception 1:
FileNotFoundException: Could not load file or assembly 'CefSharp.Core.Runtime, Version=, Culture=neutral, PublicKeyToken=40c4b6fc221f4138' or one of its dependencies. The system cannot find the file specified.

I have manually added the following files and set them to copy always:

  1. CefSharp.BrowserSubprocess.exe
  2. CefSharp.BrowserSubprocess.Core.dll
  3. Ijwhost.dll
  4. CefSharp.Core.Runtime.dll
  5. CefSharp.Core.dll
  6. CefSharp.dll
  7. CefSharp.Wpf.dll
  8. libcef.dll
  9. chrome_elf.dll
  10. icudtl.dat
  11. snapshot_blob.bin
  12. v8_context_snapshot.bin

I can find the above files in bin after I build, but I cannot figure out why CefSharp,Core.Runtime is still reported missing.
This is on VS 2022 on Windows 11, with CefSharp version 95.7.141.

Any help would be very appreciated. Thanks in advance!

Alex Maitland

I am using CefSharp (WPF) for a VSIX project

@ShishirH Try using build 96.0.130-CI4313 from https://www.myget.org/feed/cefsharp/package/nuget/CefSharp.Wpf
See if commit cefsharp/CefSharp@5447c8d makes a different.

Ahmed Talaat

i have code to get data from html table to datagridview using webbrowser thats my code:
Dim mytable As HtmlElement = WebBrowser1.Document.GetElementById("DataGridemplis")
Dim dtData As DataTable = New DataTable
Dim dr As DataRow = Nothing
For Each row As HtmlElement In mytable.GetElementsByTagName("tr")
dr = dtData.NewRow
Dim cells As HtmlElementCollection = row.GetElementsByTagName("td")
Dim i As Integer = 0
Do While (i < cells.Count)
dr(i) = cells(i).InnerText
i = (i + 1)
DataGridView2.DataSource = dtData

and it work very well
but now i use cefsharp chromium and i cant get data from html table to datagridview
I want get data from html table to datagridview using cefsharp

Krishna Chaitanya M

@amaitland, while running our application with CefSharp support, in few of the VMs we are getting the below crash.

As part of our code, we are stringifying the CefSettings object via JavascriptSerializer. But, we see the below crash happening in few of the machines. Could you let me know if you have faced this anytime before?

17/11/2021 15:16:21 .NET Runtime Error Application: Sample.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.AccessViolationException at System.String.wcslen(Char) at System.String.CtorCharPtr(Char) at CefSharp.Core.CefSettingsBase.get_BrowserSubprocessPath() Exception Info: System.Reflection.TargetInvocationException at System.RuntimeMethodHandle.InvokeMethod(System.Object, System.Object[], System.Signature, Boolean) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(System.Object, System.Object[], System.Object[]) at System.Reflection.RuntimeMethodInfo.Invoke(System.Object, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo) at System.Web.SecurityUtils.MethodInfoInvoke(System.Reflection.MethodInfo, System.Object, System.Object[]) at System.Web.Script.Serialization.JavaScriptSerializer.SerializeCustomObject(System.Object, System.Text.StringBuilder, Int32, System.Collections.Hashtable, SerializationFormat) at System.Web.Script.Serialization.JavaScriptSerializer.SerializeValueInternal(System.Object, System.Text.StringBuilder, Int32, System.Collections.Hashtable, SerializationFormat, System.Reflection.MemberInfo)

Hi. I need to detect when a server request, such as the result of clicking a link, generates a non-200 response and pass that info back to my CefSharp.Offscreen program. I'm using an overridden OnResourceResponse to detect the bad status, but I don't know how to get my main program to respond to it. I tried throwing an exception and catch it in my main program to no avail.
Alex Maitland

i have code to get data from html table to datagridview using webbrowser thats my code:

@bahnay7:matrix.org You can acess the DOM using javascript see https://github.com/cefsharp/CefSharp/wiki/General-Usage#2-how-do-you-call-a-javascript-method-that-returns-a-result

A simple example getting the cells from a table might look like:

var response = await webBrowser.EvaluateScriptAsync(@"(function (){
    let srcTable = document.getElementsByTagName('table')[0];
    return Array.from(srcTable.rows, row => Array.from(row.cells, cell => cell.innerText));

dynamic arr = response.Result;

foreach(dynamic row in arr)
    foreach(var cell in row)
        var data = (string)cell;
Alex Maitland
@chaitanyajun12 I've never seen anyone trying to turn CefSettings into JSON before. Access violation would suggest the unmanaged memory was freed. Are you attempting to access CefSettings after you've called Cef.Initialize? The instance will be automatically Disposed.
3 replies
Alex Maitland
@edhalsim Perhaps http://cefsharp.github.io/api/95.7.x/html/E_CefSharp_OffScreen_ChromiumWebBrowser_FrameLoadEnd.htm suites your purpose. You can get the http status code for the frames main resource load.
5 replies