2010-11-07 13 views

Respuesta

31

La diferencia es a la vez histórica y real:

  • complementos se compilan, la carga de módulos, descendidos originalmente de NPAPI; pueden vivir fuera del espacio de proceso del navegador (lo que conduce a todo tipo de problemas de interoperabilidad y vulnerabilidades). Los ejemplos más comunes de estos son Flash y Java: ambos solicitan una subventana ("viewport" o "canvas" (no HTML5 canvas - eso es algo totalmente diferente: una parte nativa de la página web)) dentro de la página web y manejan ellos mismos , de una manera que es en gran medida independiente del navegador.
  • Las extensiones están escritas principalmente en JavaScript y XUL. Dado que las extensiones actúan como parte del navegador, tienen mayores privilegios de acceso que JS-in-a-webpage, pero aún están sujetas a algunas limitaciones. La forma más común de integración es enganchar en alguna parte de la funcionalidad de FF y extenderlo .

Así, aunque los plugins y extensiones pueden aparecer a estar relacionados, son muy diferentes tecnologías detrás de las escenas.

+1

¡Una respuesta mucho más precisa que la mía! –

+0

Y ahora hay extensiones XUL y WebExtensions: las primeras aparentemente están en desuso, y las últimas son anémicas. Hurra. – Piskvor

11

De acuerdo con Mozilla, los complementos ayudan al navegador a mostrar contenido, como reproducir archivos multimedia. Las extensiones realmente agregan nuevas funcionalidades al navegador.

Véase el primer par de párrafos aquí: https://developer.mozilla.org/en/extensions

+1

imo, esta respuesta es más valiosa que la aceptada (que, aunque es precisa, desciende a detalles de implementación y es difícil de seguir (en parte porque contiene paréntesis anidados)). Esta respuesta ofrece una visión general de alto nivel que alguien que no tiene experiencia con estas tecnologías puede comprender. – d512

5

uno son programas que se extiende de lado a lado de Firefox. Consiguen un lienzo y cuando pintan en el lienzo, Firefox lo renderiza. Ejemplos notables: Flash, Java, QuakeLive.

Los otros son programas que se ejecutan en el intérprete/compilador de JavaScript de Firefox. Extienden la funcionalidad de Firefox más directamente, ya que tienen acceso a las partes internas de Firefox y no son simplemente un lienzo. Además, son mucho más portátiles ya que no requieren tanto soporte subyacente del sistema operativo.

Existen ventajas y desventajas para ambos enfoques, y resuelven diferentes tareas.

+0

+1. Corrección secundaria: el lienzo de un complemento se procesa de forma predeterminada directamente por el complemento, omitiendo por completo el navegador (donde, por ejemplo, el atributo 'wmode = transparent' de Flash es un poco de una solución para esto). – Piskvor

Cuestiones relacionadas