2010-04-15 5 views
33

Je suis curieux quant à la procédure pour écrire des plugins de navigateur pour les navigateurs comme Chrome, Safari et Opera. Je pense spécifiquement à Windows ici et je préférerais travailler avec C++.Comment écrire un plugin de navigateur?

Existe-t-il des outils ou des didacticiels qui détaillent le processus?

Remarque: Je ne parle pas des extensions ou des 'addons'. Je me réfère à un plugin similaire à Flash et Adobe Reader ont des plugins pour gérer des types de contenu spécifiques.

+1

Un plugin similaire à Flash et Adobe Reader avec des plugins pour gérer des types de contenu spécifiques? –

+1

@Ben: Oui! Exactement. –

+1

Comme NPAPI est progressivement éliminé dans Chrome, Pepper Plugin API (PPAPI), «un ensemble de modifications à NPAPI pour rendre les plugins plus portables et plus sécurisés», est le remplacement recommandé. Je voudrais maintenant poser cette question dans le contexte de PPAPI, https://en.wikipedia.org/wiki/Google_Native_Client. IIRC Firefox n'a pas décidé de supporter PPAPI mais plutôt de travailler avec les fournisseurs de plugins pour apporter des modifications de sécurité similaires ou similaires aux logiciels NPAPI et plugins. –

Répondre

39

Comme d'autres font remarquer, plugins pour ceux navigateur sont écrits en utilisant le NPAPI.

Remarque: Firefox et Chrome utilisent par défaut la plupart des plug-ins to click-to-play soon, Chrome prévoyant la création de phase out NPAPI entirely. NPAPI pour les nouveaux projets est déconseillé à ce stade.

Ressources pour commencer avec NPAPI:

Le NPAPI lui-même est cependant relativement faible niveau, mais il existe des outils et des cadres qui peuvent vous aider avec elle:

  • FireBreath - cross navigateur, cadre multi-plateforme pour les modules
  • Nixysa - générer colle-code pour NPAPI plug-ins
  • JUCE - cadre d'applications en fournissant un appui pour les modules
  • QtBrowserPlugin - cadre plugin navigateur basé sur Qt
+1

Le lien de "npsimple" semble incorrect. Est-ce le bon: https://github.com/mikma/npsimple? –

+0

@RobW Oui, l'autre lien était complètement hors de propos. Il semble s'agir d'un site Web sur une application de smartphone appelée "Web of Cam". –

+0

Correction maintenant, merci. –

0

ils ont obtenu des classes il est plus facile à mettre en œuvre des plugins de navigateur

4

I objet d'une enquête des cadres énumérés par Georg, voici ce que je reçois:

  1. Firebreath. Je pense que c'est presque le meilleur disponible. Vous pouvez créer un plugin de navigateur multi-plateforme avec FireBreath dans quelques jours. J'ai trouvé quelques inconvénients: il ne supporte pas les caractères utf-8 sur 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 crois que boost/locale peut résoudre ce problème.Mais FireBreath ne contient pas boost/locale. Oui, vous pouvez utiliser boost externe, mais j'ai passé plusieurs jours à configurer et à peaufiner et je n'arrive toujours pas à compiler sous Windows. L'auteur utilise cmake pour organiser le code et les sous-projets. Et il a créé beaucoup de scripts de chauves-souris ou de shell et de macros cmake, il est très difficile à comprendre et à configurer. En bref, si vous voulez quelque chose que FireBreath ne fournit pas actuellement, vous aurez une malchance, il est très difficile d'ajouter de nouvelles fonctionnalités.

  2. Nixysa. Je ne pense pas que cela soit activement développé. La documentation est pauvre. Et à partir des commentaires de la page wiki: https://code.google.com/p/nixysa/wiki/HelloWorldWalkThru Nous pouvons savoir que les utilisateurs ne pouvaient pas obtenir d'aide du tout et avaient du mal à l'exécuter sur Windows

  3. JUCE. Ce n'est pas spécialement pour créer des plugins de navigateur. Il ne supporte PAS Linux. L'auteur pense que NPAPI va mourir, donc il n'a pas l'intention de supporter Linux ou d'ajouter de nouvelles fonctionnalités.

  4. QtBrowserPlugin. Vous ne pouvez pas le trouver dans la documentation plus tard que QT 4.5. En un mot, il n'est pas maintenu (et retiré de Qt 5.0)

Je vais mettre à jour cette réponse une fois que j'en aurai trouvé plus.

Mise à jour: Chrome abandonné Prise en charge de NPAPI. Je pense qu'à l'avenir, il deviendra de plus en plus difficile d'écrire des plugins en C++, faute de support des navigateurs.

Questions connexes