Comment écrire un plugin de navigateur?
Je suis curieux de savoir la procédure pour l'écriture de plugins pour les navigateurs comme google Chrome, Safari et Opera. Je pense en particulier à Windows ici et préfèrent travailler avec C++.
Existe-il des outils ou des tutoriels qui expliquent en détail le processus?
Note: je ne parle pas des extensions ou 'addons'. Je fais référence à un plugin similaire à la façon dont Flash et Adobe Reader plugins pour gérer spécifiques des types de contenu.
- Un plugin similaire à la façon dont Flash et Adobe Reader plugins pour gérer spécifiques des types de contenu?
- Oui! Exactement.
- Comme NPAPI est en cours d'élimination du Chrome, du Poivre, de l'API du Plugin (PPAPI), "une série de modifications à NPAPI pour faire des plugins plus portable et plus sûr", est le remplacement conseillé. Je voudrais reask cette question dans le contexte de PPAPI, en.wikipedia.org/wiki/Google_Native_Client. SI Firefox n'a pas décidé de soutenir PPAPI mais au lieu de cela fonctionne avec le plugin fournisseurs à faire de même ou les mêmes modifications de la sécurité de NPAPI et du logiciel plug-in.
Vous devez vous connecter pour publier un commentaire.
Comme l'autre, des plugins pour ces navigateurs sont écrites à l'aide de la NPAPI.
Remarque: à la Fois Firefox et google Chrome par défaut de la plupart des plugins de click-to-play bientôt, avec le Chrome de la planification à phase out NPAPI entièrement. NPAPI pour de nouveaux projets est découragé à ce point.
Ressources pour le démarrage de NPAPI:
La NPAPI lui-même est cependant relativement faible, mais il existe des outils et des cadres de qui peut vous aider avec elle:
J'ai étudié quelques-uns des cadres répertoriés par Georg, voici ce que j'obtiens:
FireBreath. Je pense que c'est presque le meilleur disponible. Vous pouvez créer une plate-forme de plugin dans votre navigateur avec FireBreath en quelques jours. J'en ai trouvé quelques inconvénients: Il ne prend pas en charge les caractères utf-8 sur Windows. Par exemple: si il y a des caractères Chinois dans un nom de fichier, vous ne pouvez pas lire le contenu de ce fichier. Je crois que boost/locale peut résoudre ce problème. Mais FireBreath ne contient pas de boost/locale. Oui, vous pouvez utiliser externes coup de pouce, mais j'ai passé plusieurs jours de la configuration et de réglages et ne peut toujours pas obtenir de la compilation sous Windows. L'auteur utilise cmake pour orgnize code et sous-projets. Et il a créé beaucoup de chauve-souris ou des scripts shell et cmake macros, il est très difficile à comprendre et à configurer. En bref, si vous voulez quelque chose qui FireBreath ne prévoit pas actuellement, vous aurez une mauvaise chance, il est très difficile d'ajouter de nouvelles fonctionnalités.
Nixysa. Je ne pense pas qu'il est activement développée. La Documentation est pauvre. Et d'après les commentaires de la page du wiki: https://code.google.com/p/nixysa/wiki/HelloWorldWalkThru On peut savoir ce que les utilisateurs ne pouvaient pas obtenir de l'aide à tous et avaient de la difficulté à l'obtenir en cours d'exécution sur Windows
JUCE. Il n'est pas spécialement pour la création de plug-ins de navigateur. Il ne supporte PAS Linux. L'auteur pense que NPAPI va mourir, donc il n'a pas de plan pour le support de Linux ou d'ajouter de nouvelles fonctionnalités.
QtBrowserPlugin. Vous ne pouvez pas le trouver dans des documents plus tard que QT 4.5. En d'autres mots, il n'est pas maintenu(et retiré de Qt 5.0)
Je mettrai à jour cette réponse une fois que je trouve de plus.
Mise à jour: Chrome chuté NPAPI de soutien. Je pense que dans le futur, il devient de plus en plus difficile d'écrire des plugins en C++ parce que manque de soutien des navigateurs.
Les navigateurs comme Netscape navigateurs, google Chrome, Safari et Opera utilise NPAPI système de plugin, vous pouvez apprendre comment écrire des plugins NPAPI dans https://developer.mozilla.org/en/Plugins et http://code.google.com/chrome/extensions/npapi.html
Si vous connaissez Qt, puis ils ont eu quelques classes qui le rend plus facile à mettre en œuvre des plugins du navigateur