Точная разница между надстройками, плагинами и расширениями

какова точная разница между плагинами, надстройками и расширениями. Я много читал об этом и запутался, Например, см. эти четыре определения:

1-fire-fox говорит: "дополнения-это коллективное название расширений, тем и плагинов "(см. https://support.mozilla.org/en-US/questions/790919)

2-www.Differencebetween.net говорит: "Plug-in и Add-on-это просто расширения ... Плагин-это термин, который обычно используется при обращении к стороннее программное обеспечение (взаимодействие с определенной программой), например flash player ...

3 - Википедия (https://en.wikipedia.org/wiki/Plug-in_%28computing%29) говорит, что плагин устарел.

4-я прочитал на другом веб-сайте, что плагины больше, чем надстройки, и состоят из концепции надстройки.

и я прочитал ответ в firefox дополнения против расширений против плагинов и http://colonelpanic.net/2010/08/browser-plugins-vs-extensions-the-difference/

однако я хочу понять эти различия, особенно в firebreath, где Плагины выполняются автоматически с согласия пользователя, а надстройка должна устанавливаться вручную. Также я думаю, что плагин встроен в страницу htm, а надстройка - в виде отдельного файла, такого как xpi в fire-fox.

любые точные, всеобъемлющие и точные определения для этих трех концепций, которые появляются различия будут оценены.

1 ответов


общее правило:

Плагины

когда вы говорите о веб-браузере, плагин говорит о NPAPI или аналогичном плагине, который специфичен для страницы. IE не поддерживает "плагины" как таковые, но у них есть элементы управления activex, которые могут заполнить аналогичную функцию, хотя есть также элементы управления BHO (Browser Helper Object) ActiveX, которые больше похожи на расширения. Таким образом, мы (команда FireBreath) обычно используем термин "плагин" для обозначения чего-то, что работает как плагин NPAPI и термин "расширение" для обозначения чего-то, что работает как типичное расширение (firefox XPI, Chrome CRX и т. д.).

Плагины знают только о странице, на которой они находятся; они ничего не знают о браузере или о том, что загружается на других страницах.

Плагины несут ответственность за множество проблем безопасности, так как они фактически запускают собственный код. Это привело к большой дискриминации в отношении них-и многое из этого заслужено. Из-за этого, и поскольку NPAPI-это королевская боль в шее (следовательно, FireBreath был создан), большинство браузеров пытаются отказаться от плагинов. Плагины никогда не должны использоваться, если нет другого способа решить вашу проблему.

тем не менее, есть много случаев, когда они являются единственным вариантом.

расширения

расширение - это то, что специфично для браузера, и они немного отличаются в каждом браузере, но, как правило, могут узнать больше об общем состоянии браузер; они могут быть автоматически добавлены на страницы, доступные отдельно от страницы и т. д.

дополнения

Add-on-это скорее общий термин, который используется для обозначения множества разных вещей. Что это на самом деле означает, зависит от того, кто говорит, но определение mozilla, вероятно, так же хорошо, как и любое; это может быть все, что добавляет функциональность вашему веб-браузеру, независимо от контекста.

Ключевые Отличия

расширения, как правило автоматический раз установленный. Плагины создаются одним из двух способов: 1) путем <object> или <embed> тег в HTML веб-страницы или 2), потому что они зарегистрированы как обработчик для типа mimetype, который браузер не поддерживает.

Крокс

FireBreath имеет дело с плагинами. Это не имеет ничего общего с типичными расширениями браузера, только Плагины. Это платформа C++, а не javascript framework, и она позволяет добавлять функциональные возможности, которые могут быть использованы из внутри веб-страницы. Обычно Плагины FireBreath используются изнутри <object> тег.

FireBreath post-NPAPI

как вы можете или не знаете, Chrome прекратил поддержку плагинов NPAPI (начиная с версии 45), а Firefox сделал это с версии 52 (за исключением версии 52 Extended Support Release, которая будет поддерживать их в течение еще одного года). FireBreath 2.0 теперь используется в производстве несколькими компаниями и может производить " плагины "(не совсем плагины, но работают аналогично), который может работать с Google Chrome и Firefox через собственные сообщения через вспомогательное расширение. Основным ограничением является рисование; нет способа рисовать непосредственно в браузере через собственный обмен сообщениями (ну, нет хорошего способа, и вообще нет способа на других платформах, кроме windows).

В конце концов мы можем добавить поддержку некоторой абстракции для рисования с помощью Canvas / WebGL через собственный мост обмена сообщениями в FireBreath 2.0, но это еще не сделано. Честно говоря, мне это не нужно, поэтому я не потрудился сделать это. FireBreath-это платформа с открытым исходным кодом, которая, к сожалению, не получила достаточной поддержки от пользователей за последние пару лет, поэтому документация немного устарела, и есть много мелочей, которые не были сделаны.

родной метод обмена сообщениями опирается на расширение - мы сделали это в первую очередь, чтобы запутать всех, конечно, но и потому, что это был единственный способ, чтобы позволить нам общаться с плагинами FireBreath со страницы в Google Chrome или Firefox.

*(последнее обновление 6 марта 2017 года; Firefox 52 планируется выпустить завтра)

надеюсь, что это поможет. См. также: