J'ai étudié certains cadres répertoriés par Georg, et voici ce que j'obtiens :
-
Souffle de feu. Je pense que c'est presque le meilleur disponible. Vous pouvez créer un plugin de navigateur multiplateforme avec FireBreath en quelques jours. J'ai trouvé quelques inconvénients : Il ne supporte pas les caractères utf-8 sous Windows. Par exemple : s'il y a des caractères chinois dans un nom de fichier, vous ne pouvez pas lire le contenu de ce fichier. Je pense que boost/locale peut résoudre ce problème. Mais FireBreath ne contient pas de boost/locale. Oui, vous pouvez utiliser un boost externe, mais j'ai passé plusieurs jours à le configurer et à l'ajuster et je n'ai toujours pas réussi à le faire compiler sous Windows. L'auteur utilise cmake pour organiser le code et les sous-projets. Et il a créé beaucoup de scripts bat ou shell scripts et de macros cmake, c'est très difficile à comprendre et à configurer. En bref, si vous voulez quelque chose que FireBreath ne fournit pas actuellement, vous n'aurez pas de chance, il est très difficile d'ajouter de nouvelles fonctionnalités.
-
Nixysa. Je ne pense pas qu'il soit activement développé. La documentation est médiocre. Et d'après les commentaires de la page wiki : https://code.google.com/p/nixysa/wiki/HelloWorldWalkThru Nous savons que les utilisateurs n'ont pas pu obtenir d'aide du tout et qu'ils ont eu des difficultés à faire fonctionner le logiciel sous Windows.
-
JUCE. Il n'est pas spécialement conçu pour créer des plugins de navigateur. Il n'est PAS compatible avec Linux. L'auteur pense que NPAPI va mourir et n'a donc pas l'intention de prendre en charge Linux ou d'ajouter de nouvelles fonctionnalités.
-
QtBrowserPlugin. Vous ne pouvez pas le trouver dans la documentation postérieure à QT 4.5. En d'autres termes, il n'est pas maintenu (et a été supprimé de Qt 5.0).
Je mettrai à jour cette réponse dès que j'en saurai plus.
Mise à jour : Chrome abandonné NPAPI le soutien. Je pense qu'à l'avenir, il sera de plus en plus difficile d'écrire des plugins en C++ à cause du manque de support des navigateurs.