来说一说chrome扩展和chrome插件到底有什么区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了来说一说chrome扩展和chrome插件到底有什么区别?相关的知识,希望对你有一定的参考价值。

想讨论chrome扩展和chrome插件区别这个话题很久了!但是迟迟没有写。因为我自己也没有搞清楚这两者之间的区别!回想当初是因为需要寻找番羽墙插件才想到去搜索到chrome插件。

想讨论chrome扩展和chrome插件区别这个话题很久了!但是迟迟没有写。因为我自己也没有搞清楚这两者之间的区别!回想当初是因为需要寻找番羽墙插件才想到去维护一个类似的插件网。我甚至问过身边很多程序员这两者之间的区别,说实话能说清楚的也没有几个。今日在论坛里看到有热心的网友推荐这个chrome网,甚是欣慰。但是看到一位网友的回复时我才意识到我该去好好了解一下chorme扩展和chrome插件的的区别。那位网友说:这不叫“插件”,这叫“扩展”,名称都叫不对的网站直接无视!

首先,想要直观的去了解在chrome里插件和扩展到底有什么区别?怎么去区分时,我们只需要查看如下两个地址就可以了!
    chrome://settings/extensions  这里面的是扩展
    chrome://plugins/                     这里面的是插件
技术分享

技术分享


其次,从英语翻译来看,插件对应的是“Plugin”,扩展对应的是“Extension”,所以它俩背后其实是两个完全不同的词!

再次,从功能来看来。"扩展"和"插件",其实都是软件组件的一种形式,Chrome 只不过是把两种类型的组件分别给与了专有名称,一个叫"扩展",另一个叫"插件"。

  • 扩展(Extension),指的是通过调用 Chrome 提供的 Chrome API 来扩展浏览器功能的一种组件,工作在浏览器层面,使用 html + javascript 语言开发[*]。比如著名的 Adblock plus。
  • 插件(Plug-in),指的是通过调用 Webkit 内核 NPAPI 来扩展内核功能的一种组件,工作在内核层面,理论上可以用任何一种生成本地二进制程序的语言开发,比如 C/C++、Delphi 等。比如Flash player 插件,就属于这种类型。一般在网页中用 <object> 或者 <embed> 标签声明的部分,就要靠插件来渲染。
最后,从安全性 上来看,由于插件一般实现的都是比较底层的功能,所以一旦出现问题,往往就会牵涉到整个操作系统,像 Flash 插件就属于经常被扒出高危漏洞的那一类。相比较之下,扩展出现问题,其危害性类往往似于浏览器漏洞。不过 Chrome Extension 在为用户带来便利的同时,也的确带来了不少安全问题,Google Chrome 的稳定版甚至还禁掉了 Windows 用户安装 Chrome Web Store 外扩展的权限。即便是在 Chrome Web Store 中的应用也不能保证绝对安全,因为 Google 自己也下架过一些有安全隐患的扩展。


总的来说:拓展就是利用浏览器提供给你的功能,通过自己搭配来实现一些功能组合,通常利用JavaScript这样的脚本语言来完成,只要调用浏览器提供的接口即可。而插件是浏览器提供的功能已经不能满足你的组合了,你需要利用C++这样的编译语言来拓展浏览器可以提供的功能,来供你调用。一句话概括,插件功能强大但是制作麻烦,拓展功能受限但是制作简单。















以上是关于来说一说chrome扩展和chrome插件到底有什么区别?的主要内容,如果未能解决你的问题,请参考以下文章

10个设计师专属的最佳Chrome小插件

chrome extension插件扩展开发部分文档

chrome extension插件扩展开发部分文档

Chrome 67 以后版本无法离线安装crx插件

chrome插件开发怎么发送请求

干货Chrome插件(扩展)开发全攻略