Monday, May 24, 2010

Playing around with the WPF Chromium web browser control

I've spent a little time today playing around with WPF Chromium, using version 1.5 of the Awesomium wrapper. I'm evaluating some web browser controls for embedding in our WPF applications at work. There's a new beta version of Awesomium out at the moment, and it looks as if the WPF Chromium author has some plans to support it, but for the moment version 1.5 is all I have to play with.

What's great about this control:

  • A real WPF control, so it embeds nicely into a WPF UI with no (known) graphical oddities (like the control rendering over the top of the rest of the UI).



What's lacking (at the moment):

  • Windows Auth doesn't work. Apparently Chrome v5 Beta has some support for this, so when that will flow through to this control is unclear.

  • Drag & drop doesn't seem to work, even just within the browser.

  • Silverlight behaves strangely (it appears to work perfectly within GeckoFX)



At the moment, WPF Chromium really isn't an option. Maybe when the control supports Awesomium 1.6 it will fix some/all of these issues, but in the meantime, GeckoFX is looking like a winner.

Playing around with the GeckoFX web browser control

Have been playing around with GeckoFX as an embedded browser control replacement for MS's IE control. MS's IE control lacks any HTML5 support and we'd really like to be able to take advantage of some of the cool drag & drop features, such as those used here. Much to my surprise, using features like this allows us to do drag & drop of objects between web applications and our custom WPF/WinForm apps. Extremely cool.

I have also had a quick look at WPF Chromium and a super quick glance at WebKit .NET. I plan to take a closer look at them soon, but for the moment, here are the things I like best about GeckoFX:


  • Drag & drop works within the browser, and to external apps (in the quick look I've taken, I've been unable to do this with WPF Chromium

  • Windows Auth appears to work. This is vital to what we're doing at work, since this is how all our apps are secured. If the other options don't support this, then they're not contenders at all.

  • Although I haven't played with it yet, using GeckoFX I imagine we can use GreaseMonkey to help integrate web applications with our desktop environment in ways we may not have been able to do, especially for 3rd party products that otherwise wouldn't allow such a high degree of customisation.

  • Silverlight runs very happily.



The only thing I really wish is that it was a true WPF control, rather than WinForms. Since most of our development is WPF, we have to use the WinForms integration, which is OK, but causes some graphical issues (such as the web control always rendering over the top of the WPF content - note that the IE control has these problems too.) WPF Chromium does not have this problem, and really allows some seriously cool graphical effects.