转一篇有关NPAPI的文章,NPAPI不知道影响了多少人

转一篇有关NPAPI的文章,NPAPI不知道影响了多少人

首先声明,这是知乎上的一篇文章。最近一段时间,由于Firefox不再支持Java的原因,搞的一直用的一个B/S系统无法使用,只能使用低版本的Firefox。今天偶尔找到这篇文章,很早的一篇旧文了,顿悟了。

原标题:NPAPI 为什么会被 Chrome 禁用?受影响的网站有什么普遍性?
作者:罗志宇
链接:https://www.zhihu.com/question/31227185/answer/56770753
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

其实何止是Chrome, 几乎所有的浏览器厂商都在淘汰/去掉NPAPI的支持      

Opera: 我早就说了啊

火狐 :我还是会支持的,只是大家要一起来淘汰这个技术.

如果我告诉你 Flash 也是NPAPI插件,你会不会是这个样子:

那么 NPAPI 到底出了什么问题?

NPAPI全称叫 Netscape plugin API, 你没有看错,就是那个当年被微软一棒子打死了好多年的 Netscape。

很久以前, Netscape 发明了NPAPI 这个种架构,来帮助浏览器渲染一些HTML没有的东西。比如 PDF, 比如 视频, 以及等等。。

事实上, NPAPI 插件架构是个非常好的架构, 一共就40几个API, 相对于另外一种浏览器插件架构: ActiveX来说,简直就是业界良心。

这里只有一个问题,它的发明时间是 1995 年,而在那个时候手机还可以砸死人,学校的电脑房要穿鞋套才能进。

那个时代所有类似的API设计者几乎都很自然的忽略掉了安全性问题。那个时候无论是网络环境还是商业环境相比现在都简单很多。

我们来看看NPAPI插件和浏览器的关系是什么, 同时对比下和同样执行网络下载代码的 Javascript 引擎的位置,

看懂了吧, 你以为是NPAPI是插件是吗?其实它和浏览器是平级运行的,它甚至可以打开网页,给你安一个木马,然后随手帮你关掉杀毒软件。什么,你说NPAPI不就40几个API嘛, 少年,你想多了,NPAPI不限制插件自由访问系统所有的API.

而 Javascript 引擎的限制就多得多,事实上,Chromium 系列的浏览器 Javascript 引擎均是运行在沙盒之中,一举一动都是被严密监视着的,敢有异常? 浏览器分分钟杀死你。

除了安全性以外,插件们还质量参差不齐,一旦崩溃浏览器就得跟着一起崩掉。 于是各个浏览器又一把鼻涕一遍泪的把插件们放到另外一个进程中运行,惹不起你们我们还躲不起嘛。其他的耗电量,图形效率,脚本效率一类的我就不多讲了,讲多了都是泪。

不过如果只是安全,那你把插件放到沙箱里面隔离起来不就行了嘛。

是的,谷歌当年也是这样想的,于是他们发明了 PPAPI, 然后在业界里面振臂一呼,大家来看,我的这个新API好啊,插件用起来更安全,有沙箱哦。

这个是业界伙伴们的态度:

Java: 我最近听说Chrome不支持我们了,大家请换浏览器,就这样

火狐: 我们对 PPAPI(pepper) 一点兴趣都木有。
(而且坑爹的是, Google 的PPAPI链接居然指的是Mozilla 的这个页面。不知道是不是存心恶心Mozilla).

如果你是个程序猿又有一颗好奇的心,表示无法理解PPAPI为何如此不受待见,你可以去这里看看PPAPI的文档 ,在这里
code.google.com/p/ppapi

你一定会发现问题,其实不管你是不是程序猿你都会发现问题。因为,这个PPAPI官方文档链接里面,几乎木有文档。。

不过Adobe认怂了。 事实上Adobe很早就开始发布PPAI的版本。

所以如果你这几天再看到插件无法运行的对话框,如果上面写的是Flash, 你只需要去下载一个最新的ppai的flash 插件,或者下载一个新版的Chrome. 因为目前Chrome已经开始内置PPAPI版的Flash。

其他的,就看厂商们如何跟进吧。

========================================================================

总结来讲:
NPAPI 会被禁掉, 不过PPAPI会被继续支持,于是:

  • Java Plugin 需要重写
  • UnityPlugin 需要重写
  • SliverLight Plugin 需要重写。

用到以上插件的网站会收到影响。
使用 Flash 插件的网站不会收到影响, 因为 Flash 已经重写了。。

下面是 Google 对 流行NPAPI 的统计数据:

所以,普遍性就是:
如果你还在用任何一款NPAPI插件,然后对应的插件还没有PPAI版本或者HTML 替代版的话。9月以后节哀顺变吧。。

(转载注:本文在知乎上的编辑时间为2015年7月30日)