Search code examples
c#vb.netxulrunnergeckofx

Embedding Firefox/Gecko as a control into .Net (forms/wpf) general beginner questions getting started


I am looking into moving away from using IE and the webbrowser control for .NET application ie. C# or VB.NET.

I would like to use Firefox instead, however I am new to this and am very confused with all the different packages, forks, old tutorials and Firefox versioning out there.

  1. My understanding is that I first need GeckoFX. Is this just one person who has ported Firefox's Gecko (the layout engine) to be able to used by .NET or is this something official or more or less official?

  2. My next understanding is that I need xulRunner which is the runtime and that I always need to match GeckoFX version with xulRunner? If GeckoFX is currently at version 45 where is the matching xulRunner for this?

  3. If the operating system already has Firefox installed are there any shortcuts to 1 and 2? Or do I need to always download, develop and deploy everything from GeckoFX and xulRunner each time it is updated?

  4. Can I use the users' Firefox profile with my embedded control? In particular I need to use the PKI certificates for certain websites and I cannot simply ignore them. Or do I need to copy the cert8.db from their profile to use it with my embedded control?

  5. GeckoFX at the link i provided above is at version 45, does this mean that it uses the Firefox Gecko from version 45? This means it is a little bit behind the current firefox version (my Firefox shows 52)?

  6. If the user updates Firefox does this effect my embedded control at all?


Solution

  • My understanding is that I first need GeckoFX. Is this just one person who has ported Firefox's Gecko (the layout engine) to be able to used by .NET or is this something official or more or less official?

    GeckoFx is not a port of Gecko; it's a .net wrapper around xulrunner. It's not a Mozilla project.

    My next understanding is that I need xulRunner which is the runtime and that I always need to match GeckoFX version with xulRunner?

    Right.

    If GeckoFX is currently at version 45 where is the matching xulRunner for this?

    The project site has instructions and pointers of where to get xulrunner.

    If the operating system already has Firefox installed are there any shortcuts to 1 and 2? Or do I need to always download, develop and deploy everything from GeckoFX and xulRunner each time it is updated?

    Theoretically, it can use the installed Firefox. But since the version of geckofx has to match the installed Firefox, that doesn't seem practical since you can't control what version of Firefox users are running.

    Can I use the users' Firefox profile with my embedded control? In particular I need to use the PKI certificates for certain websites and I cannot simply ignore them. Or do I need to copy the cert8.db from their profile to use it with my embedded control?

    Sorry, I don't know. You could try asking on the BitBucket project site.

    GeckoFX at the link i provided above is at version 45, does this mean that it uses the Firefox Gecko from version 45? This means it is a little bit behind the current firefox version (my Firefox shows 52)?

    Yes.

    If the user updates Firefox does this effect my embedded control at all?

    Not if your project uses its own xulrunner.