Partage
  • Partager sur Facebook
  • Partager sur Twitter

Gecko et Xulrunner

Problème de compatibilité

Sujet résolu
    8 avril 2012 à 23:42:35

    Bonjour,

    Je travail actuellement sur un programme en VB.NET permettant de coder en HTML, CSS et PHP et en même temps de voir un aperçu du site sur le côté dans les principaux navigateurs web (IE, Mozilla et Chrome voir Safari). Il existe bien sûr le WebBrowser mais il n'utilise qu'Internet Explorer.

    Après pas mal de recherches, j'ai trouvé que pour utiliser Mozilla, on pouvait utiliser la dll Gecko (utilisée par Mozilla) et donc avoir un WebBrowser Mozilla. Sauf que cet élément a besoin de Xulrunner pour marcher. J'arrive donc à faire un WebBrowser Mozilla mais ça ne marche que avec les plus anciennes versions de Xulrunner, donc l'affichage n'est pas comme avec les dernières versions de Mozilla (alors que le but de mon programme est de s'assurer que le CSS fonctionne bien avec tous les navigateurs ..).

    J'ai bien essayé avec la dernière version de Xulrunner (la version 11.0 téléchargeable ici, les autres versions 12 et 13 ne sont pas encore publiques) mais à chaque fois que je compile mon programme, j'obtiens cette exception non gérée :

    L'exception System.InvalidOperationException n'a pas été gérée
      Message=Une erreur s'est produite lors de la création du formulaire. Pour plus d'informations, consultez Exception.InnerException. L'erreur est : Impossible d'effectuer un cast d'un objet COM de type 'System.__ComObject' en type d'interface 'Skybound.Gecko.nsInterfaces'. Cette opération a échoué, car l'appel QueryInterface sur le composant COM pour l'interface avec l'IID '{A88E5A60-205A-4BB1-94E1-2628DAF51EAE}' a échoué en raison de l'erreur suivante : Cette interface n’est pas prise en charge (Exception de HRESULT : 0x80004002 (E_NOINTERFACE)).
      Source=WindowsApplication1
      StackTrace:
           à WindowsApplication1.My.MyProject.MyForms.Create__Instance__[T](T Instance) dans 17d14f5c-a337-4978-8281-53493378c1071.vb:ligne 190
           à WindowsApplication1.My.MyProject.MyForms.get_Form1()
           à WindowsApplication1.My.MyApplication.OnCreateMainForm() dans C:\Users\Tristan\documents\visual studio 2010\Projects\WindowsApplication1\WindowsApplication1\My Project\Application.Designer.vb:ligne 35
           à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
           à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
           à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
           à WindowsApplication1.My.MyApplication.Main(String[] Args) dans 17d14f5c-a337-4978-8281-53493378c1071.vb:ligne 81
           à System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
           à System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
           à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
           à System.Threading.ThreadHelper.ThreadStart_Context(Object state)
           à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
           à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
           à System.Threading.ThreadHelper.ThreadStart()
      InnerException: System.InvalidCastException
           Message=Impossible d'effectuer un cast d'un objet COM de type 'System.__ComObject' en type d'interface 'Skybound.Gecko.nsInterfaces'. Cette opération a échoué, car l'appel QueryInterface sur le composant COM pour l'interface avec l'IID '{A88E5A60-205A-4BB1-94E1-2628DAF51EAE}' a échoué en raison de l'erreur suivante : Cette interface n’est pas prise en charge (Exception de HRESULT : 0x80004002 (E_NOINTERFACE)).
           Source=mscorlib
           StackTrace:
                à System.StubHelpers.InterfaceMarshaler.ConvertToManaged(IntPtr pUnk, IntPtr itfMT, IntPtr classMT, Int32 flags)
                à Skybound.Gecko.Xpcom.NS_GetComponentManager(nsInterfaces& componentManager)
                à Skybound.Gecko.Xpcom.Initialize(String binDirectory)
                à WindowsApplication1.Form1..ctor() dans C:\Users\Tristan\documents\visual studio 2010\Projects\WindowsApplication1\WindowsApplication1\Form1.vb:ligne 5
           InnerException:


    Sauriez-vous où je pourrais trouver une version de Xulrunner qui marche avec la version 11.0 de Gecko ?
    J'espère que quelqu'un aura une réponse (si vous avez lu jusqu'au bout :-° ). Ça fait 5 heures que je pédale dans la semoule :( .

    Merci de votre aide !

    PS : Je ne sais pas si ça peut aider, mais l'élément Gecko appelle Xulrunner avec ce code :

    Imports Skybound.Gecko
    Public Class Form1
        Sub New()
            ' This call is required by the designer.
            Xpcom.Initialize("xulrunner")
            InitializeComponent()
            ' Add any initialization after the InitializeComponent() call.
        End Sub
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            GeckoWebBrowser1.Navigate("www.google.fr")
        End Sub
    End Class
    


    Et je me suis servi de cette page pour m'aider : http://bpforums.info/viewtopic.php?f=8&t=284

    Sinon je me suis dit en dernier recours que je pourrais essayer d'intégrer directement Mozilla dans mon programme (mais la je crois que je rêve). :p
    • Partager sur Facebook
    • Partager sur Twitter
      10 avril 2012 à 19:07:46

      Bonjour,

      J'ai suivi tout ce que tu as dit et je me suis heurté au même problème. En fait, tu as bien pris l'API "managé" pour XulRunner 11 sans pour autant avoir la version 11 de XulRunner :p

      Supprime la précédente, télécharge la version 11 ici et extrait la dans ton dossier "xulrunner" comme tu l'as fait avant :)

      Personnellement, ça semble fonctionner chez moi.

      En espérant avoir pu t'aider.
      • Partager sur Facebook
      • Partager sur Twitter
        10 avril 2012 à 19:14:37

        Merci beaucoup !!! Je commençais à désepérer :p Je vais tester ça tout de suite :D .

        Edit : excellent ça marche ! Encore merci ^^
        • Partager sur Facebook
        • Partager sur Twitter

        Gecko et Xulrunner

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown