浏览器扩展和插件之间的技术差异是什么?

时间:2014-07-22 03:20:11

标签: plugins google-chrome-extension terminology

从用户的角度来看,扩展程序似乎是您访问Chrome网上应用店以扩展浏览器的功能,而插件是您必须访问外部第三方网站才能扩展的内容浏览器的功能。

从技术或实施的角度来看,两者有什么区别?我在这里看到了一个类似的问题(Is phplivex a extension or plugin?),但没有得到我想要的答案。

我追求扩展或插件开发和部署的方式(如果有的话),以及两者之间是否存在重叠。

1 个答案:

答案 0 :(得分:5)

单词" extension"和"插件"软件产品有很多不同(但相关)的含义。许多用户(和开发人员)可以互换使用这些词。在浏览器扩展中,它们具有精确的含义,通过UI也可以看到。例如。可以在chrome://extensions/管理扩展程序(和应用程序),而可以在Google Chrome中chrome://plugins/管理插件。

在Chrome,Firefox,Opera和Safari中,浏览器扩展程序是指使用浏览器扩展程序API扩充浏览器的软件(请参阅ChromeFirefoxOpera的扩展文档,Safari)。大多数现代浏览器都需要使用JavaScript编写扩展。扩展通常与平台无关,并且在有限的环境中运行(Firefox是后者的明显例外)。扩展通常部署为一组JavaScript文件,其他资产(HTML,CSS,媒体......)和捆绑在特定于浏览器的存档中的配置。浏览器通常提供一种无缝方式直接在浏览器中安装扩展程序。

插件是指NPAPI插件,它是预编译的二进制文件,可通过NPAPI增强浏览器的功能。通过在文档中插入具有特定MIME类型的<embed><object>标记来调用这些插件。 NPAPI插件是特定于操作系统的(尽管源代码可以独立于平台),但不是特定于单个浏览器。 NPAPI的功能不受浏览器的限制,因此浏览器插件中的错误通常具有巨大的安全隐患(想想Java,Adobe Flash Player,Adobe PDF Reader)。这是NPAPI支持in the process of being completely dropped from Chrome的原因之一。 NPAPI插件通常安装在浏览器外部,例如通过Windows上的MSI安装程序。

如导言中所述,&#34;插件&#34;和&#34;扩展&#34;可互换使用。如果你听到有人在谈论&#34;(浏览器)插件&#34;,那么它们实际上意味着浏览器扩展。