48

Is there a way to use Google Chrome (or Safari or Firefox) as the browser in a C# application? C# now uses Internet Explorer, and the website they want to use in this program doesn't support it.

Luboš Turek
  • 5,179
  • 6
  • 39
  • 47
Timo
  • 6,427
  • 6
  • 22
  • 25
  • [DotNetBrowser](https://www.teamdev.com/dotnetbrowser) provides Chromium-based controls which you can use to display your website in a .NET application (both WPF and WinForms are supported). The library is commercial, but there are free academic and open-source licences, and it has [plenty of features.](http://dotnetbrowser-support.teamdev.com/documentation) In addition, it is able to work off-screen and does not depend on the local installation. – Anna Dolbina Sep 20 '16 at 08:03

9 Answers9

55

You can use WebKit.NET. This is a C# wrapper for WebKit, which is the rendering engine used by Chrome.

Reed Copsey
  • 522,342
  • 70
  • 1,092
  • 1,340
  • 1
    Technically Blink is the rendering engine in Chrome now. It used to be WebKit but Google forked it so they could go in their own direction a few years ago. – Greg Cobb Apr 25 '16 at 16:23
43

You can use GeckoFX to embed firefox

Joel Martinez
  • 44,051
  • 25
  • 123
  • 182
12

I don't know of any full Chrome component, but you could use WebKit, which is the rendering engine that Chrome uses. The Mono project made WebKit Sharp, which might work for you.

2Toad
  • 13,711
  • 7
  • 38
  • 38
Travis Gockel
  • 24,743
  • 10
  • 80
  • 105
10

I use Awesomium, I think it is better than GeckoFX/WebKit http://awesomium.com

Liam Martens
  • 691
  • 7
  • 20
5

OpenWebKitSharp gives you full control over WebKit Nightly, which is very close to webkit in terms of performance and compatibility. Chrome uses WebKit Chromium engine, while WebKit.NET uses Cairo and OpenWebKitSharp Nightly. Chromium should be the best of these builds, while at 2nd place should come Nightly and that's why I suggest OpenWebKitSharp.

http://gt-web-software.webs.com/libraries.htm at the OpenWebKitSharp section

George
  • 99
  • 1
  • 1
3

1/3/2017 --> January the 3rd 2017

Hi there, today I found this article to achieve this, the article is called "Creating an HTML UI for Desktop .NET Applications" and is intended to embed a chromium based control in a WPF application. It saved me the day.

https://www.infoq.com/articles/html-desktop-net

I hope it helps somebody else.

NOTE: it is based on DotNetBrowser, see license agreement here: https://www.teamdev.com/dotnetbrowser-licence-agreement

Juan
  • 1,861
  • 14
  • 25
2

Try this: http://code.google.com/p/geckofx/

iamwill
  • 163
  • 1
  • 6
2

Update for 2014:

I use geckofx, a healthy open source project that (as of this writing) keeps up to date pretty well with the latest Firefox releases.

To embed Chrome, you might consider another healthy looking open source project, Xilium.cefGlue, based on The Chromium Embedded Framework (CEF).

Both of these support WPF and Winforms, and both projects have support for .net and mono.

John Hatton
  • 1,623
  • 17
  • 19
  • Which of these are best for non-interactive uses? I.e., I just want to load a particular page, have all the javascript execute (excluding anything that requires user input), then programmatically query the DOM for information about the page as part of server-side processing with no UI. Ideally I'd have the ability to override how content is loaded, and to be informed when any modal (alert/confirm) dialogs are shown. – Dylan Nicholson Oct 23 '14 at 09:50
2

Update 2016:

Unfortunately most of the above solutions are out of date and no longer maintained.

There are 3 additional options I can suggest that are still actively developed:

1. BrowseEmAll.Cef

A .Net component that can be used to integrate the Chrome engine into your .Net Application. Based on CefGlue but a little faster on updates to the latest Chrome version. Also there is a commercial support option available which might come in handy for some. Of course the component itself is open source.

2. BrowseEmAll.Gecko

Another .Net component which can be used to integrate the Firefox engine into your .Net application. This is based on Geckofx but unlike the current version of Geckofx this will work with a normal release build of Firefox. To use Geckofx you will need to build Firefox yourself. Again commercial support is available but the component itself is fully open source.

3. BrowseEmAll Core API

Need all the different browsers in your .Net Application? Which the BrowseEmAll Core API you can integrate Chrome, Firefox, Webkit and Internet Explorer into your application. This is a commercial product though so be warned.

(Full disclosure: I work for this company so take everything I say with a grain of salt)

daniel.herken
  • 1,105
  • 7
  • 19