web-dev-qa-db-fra.com

Différence exacte entre les modules complémentaires, les plugins et les extensions

Quelle est la différence exacte entre les plugins, les modules complémentaires et les extensions. J'ai beaucoup lu à ce sujet et je suis confus, par exemple, voyez ces quatre définitions:

1-fire-fox dit "Les modules complémentaires sont le nom collectif pour les extensions, les thèmes et les plugins" (voir https://support.mozilla.org/en-US/questions/790919 )

2-www.Differencebetween.net dit que "Plug-in et Add-on sont simplement des extensions ... Plug-in est le terme qui est généralement utilisé pour désigner un logiciel tiers (interagir avec un certain programme) comme Flash Player. .

3- wikipedia ( https://en.wikipedia.org/wiki/Plug-in_%28computing%29 ) dit que le plugin est obsolète.

4-J'ai lu sur un autre site Web que les plugins sont plus gros que les modules complémentaires et qu'il s'agit d'un concept de module complémentaire.

J'ai également lu la réponse fournie dans add-on Firefox vs extensions vs plugins et http://colonelpanic.net/2010/08/browser-plugins-vs-extensions- la-différence /

Cependant, je veux comprendre ces différences, en particulier dans Firebreath où les plugins s'exécutent automatiquement avec le consentement de l'utilisateur et le module complémentaire doit s'installer manuellement. Je pense également que le plugin est intégré à la page htm tandis que le module complémentaire se présente sous la forme d'un fichier séparé comme xpi dans fire-fox.

Des définitions exactes, complètes et précises de ces trois concepts qui font apparaître des différences seraient appréciées.

21
H. Aqjn

Règle générale:

Plugins

Lorsque vous parlez d'un navigateur Web, un plugin parle d'un NPAPI ou d'un plugin similaire, spécifique à la page. IE ne prend pas en charge les "plugins" en soi, mais ils ont des contrôles ActiveX qui peuvent remplir une fonction similaire, bien qu'il existe également des contrôles ActiveX BHO (Browser Helper Object) qui sont plus similaires aux extensions. Ainsi, nous (l'équipe FireBreath) utilisons généralement le terme "plugin" pour désigner quelque chose qui fonctionne comme un plugin NPAPI et le terme "extension" pour désigner quelque chose qui fonctionne comme une extension typique (firefox XPI, Chrome CRX , etc).

Les plugins ne connaissent que la page dans laquelle ils se trouvent; ils ne savent rien d'autre sur le navigateur ou ce qui est chargé dans d'autres pages.

Les plugins sont à l'origine de nombreux problèmes de sécurité, car ils exécutent en fait du code natif. Cela a conduit à beaucoup de discrimination à leur encontre - en grande partie méritée. Pour cette raison, et parce que NPAPI est une douleur royale dans le cou (d'où FireBreath a été créé), la plupart des navigateurs essaient d'éliminer progressivement les plugins. Les plugins ne doivent jamais être utilisés sauf s'il n'existe aucun autre moyen de résoudre votre problème.

Cela dit, il existe de nombreux cas où ils sont la seule option.

Extensions

Une extension est quelque chose de spécifique au navigateur, et ils sont un peu différents sur chaque navigateur, mais ont tendance à en savoir plus sur l'état général du navigateur; ils peuvent être automatiquement ajoutés aux pages, accessibles séparément d'une page, etc.

Modules complémentaires

Add-on est plus un terme générique qui est utilisé pour signifier beaucoup de choses différentes. Ce que cela signifie dépend de qui parle, mais la définition de mozilla est probablement aussi bonne que n'importe laquelle; il peut s'agir de tout ce qui ajoute des fonctionnalités à votre navigateur Web, quel que soit le contexte.

Différences clés

Les extensions ont tendance à être automatiques une fois installées. Les plugins sont instanciés de deux manières: 1) par une balise <object> Ou <embed> Dans le code HTML d'une page Web, ou 2) car ils sont enregistrés pour être le gestionnaire d'un type MIME qui le navigateur ne prend pas en charge.

Souffle de feu

FireBreath traite des plugins. Cela n'a rien à voir avec les extensions de navigateur typiques, seulement avec des plugins. Il s'agit d'un cadre C++, pas d'un cadre javascript, et il vous permet d'ajouter des fonctionnalités qui peuvent être utilisées à partir d'une page Web. Les plugins FireBreath sont généralement utilisés à l'intérieur d'une balise <object>.

FireBreath post-NPAPI

Comme vous le savez peut-être ou non, Chrome a supprimé la prise en charge des plug-ins NPAPI (à partir de la version 45) et Firefox l'a fait à partir de la version 52 (à l'exclusion de la version 52 Extended Support Release, qui les prendra en charge pendant une autre année ). FireBreath 2.0 est maintenant utilisé dans la production par plusieurs sociétés et peut produire des "plugins" (pas vraiment des plugins, mais fonctionnent de la même manière) qui peuvent fonctionner avec Google Chrome et Firefox via Native Messaging via une extension d'assistance. La principale limitation est le dessin; il n'y a aucun moyen de dessiner directement vers le navigateur via la messagerie native (enfin, pas de bonne façon, et pas du tout sur des plates-formes autres que Windows).

Finalement, nous pouvons ajouter la prise en charge d'une abstraction pour dessiner à l'aide de Canvas/WebGL sur le pont de messagerie natif dans FireBreath 2.0, mais cela n'a pas encore été fait. Franchement, je n'en ai pas besoin, donc je n'ai pas pris la peine de le faire. FireBreath est un framework open source qui n'a malheureusement pas reçu suffisamment de soutien des utilisateurs au cours des deux dernières années et donc la documentation est un peu dépassée et il y a beaucoup de petites choses qui n'ont pas été faites.

La méthode de messagerie native repose sur une extension - nous l'avons fait principalement pour confondre tout le monde, bien sûr, mais aussi parce que c'était le seul moyen de nous permettre de communiquer avec les plugins FireBreath à partir de la page dans Google Chrome ou Firefox.

* (Dernière mise à jour le 6 mars 2017; Firefox 52 devrait sortir demain)

J'espère que cela pourra aider. Voir également:

13
taxilian