Google 浏览器要禁止 Flash?你不是当真了吧

  2020-06-07  阅读 780 views 次 点赞数309
Google 浏览器要禁止 Flash?你不是当真了吧

编按:近来网路又开启了一波反 Flash 的声浪,除了原本对 Flash 不假辞色的苹果外,Facebook、Firefox 也纷纷发难,至于 Google 的态度呢?网路上有不少人问:「如何评价 Google Chrome 浏览器要禁止执行 Flash?」针对这个问题,Opera 的 CTO 罗志宇是这幺讲的。

以下这种框,想必很多人都看到过了:

Google 浏览器要禁止 Flash?你不是当真了吧

事情的起因还需要追溯到 2013 年,Google 突然发了一个通告,说是 Chrome 浏览器会逐步的去掉对 NPAPI 外挂的支持。这个事情很快就过去了,因为 NPAPI 这种江湖黑话太不亲民了,这个东西到底有啥用,广大群众也并不清楚。关于 Google 公告,可以点击这里察看。

时间已经到了 2015 年,这次可不是说说而已了, Google 正式推出时间表:

其他浏览器厂商,比如 Opera、火狐,也纷纷表态会逐渐淘汰 NPAPI。

Google 浏览器要禁止 Flash?你不是当真了吧

Google 浏览器要禁止 Flash?你不是当真了吧

但是,NPAPI 到底是什幺?

NPAPI 全称叫 Netscape plugin API, 听到这个名字是不是有时光倒流的感觉, 没错,就是那个当年被微软一棒子打死了好多年的 Netscape 浏览器发明的一种扩展浏览器功能的方式。

是不是觉得好拗口? 没办法,我们要从浏览器外挂本身开始说起。

HTML 作为在浏览器里面承载展现内容的规範, 设计起来其实非常困难。 太简单没法用,太複杂了浏览器厂商实现起来又有困难。 一开始的时候 HTML 只是设计用于承载图片,文字一类的主流内容。不过浏览器厂商很快就不满意了,因为除了图片文字以外,很多小众内容,浏览器用户实际上是有需求的。比如 PDF 文件以及影片、音乐。

为了解决这些问题而去要求 W3C 把相应的内容加入到 HTML 标準里面是很不现实的,标準的制定非常繁複,週期也非常长,小众内容到底有没有必要加入 HTML 规範,这种哲学问题一旦讨论起来谁都不知道什幺时候能结尾, 于是浏览器厂商们发明了外挂这样一个机制, 这样如果有一些内容不被 HTML 直接支援,用户又确实有需要,那幺这部分内容就可以用外挂来处理。

W3C (全球资讯网协会)非常识相地很快就把外挂机制正式纳入 HTML4 标準里。 W3C 毕竟不是一个强力部门,它更像各大浏览器厂商背后妥协的产物。

不过按照 W3C 的哲学,外挂毕竟只是对 HTML 的一个补充。而一旦某些外挂提供的内容,由于市场原因反而变为主流,那幺 W3C 就会马上将其纳入到 HTML 规範中去,让浏览器原生就支持。

这个提案是 Opera 提出来的, 我还记得 Hakon Wellium Lee 在 Opera 员工大会上面兴致勃勃地讨论这个标籤的场景。

这个提案现在还在这里,大家有兴趣可以看看这里

看到这里,外挂在浏览器这个领域的作用已经不言而喻了。

而 W3C 会时刻监视这个等式,动态调整 HTML 支持的内容以维持这个等式的动态平衡。

现在你知道为什幺 HTML5 会加入 video、audio 标籤了吧。其实严格意义上讲也包括 svg、canvas 一类的标籤。

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

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

那个时代所有类似的 API(应用程式介面)设计者几乎都非常自然的忽略掉了安全性问题。

你不信?我们来看看 NPAPI 外挂和浏览器的关係是什幺, 同时对比下和同样执行网路下载程式码的 Javascript 引擎的位置。

Google 浏览器要禁止 Flash?你不是当真了吧

看懂了吧, 你以为 NPAPI 是外挂吗?其实它和浏览器是平行运作的,它甚至可以打开网页,安装一个木马,然后随手帮你关掉杀毒软体。

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

除了安全性以外,外挂们还质量参差不齐,一旦崩溃浏览器就得跟着一起崩掉, 于是各个浏览器又一把鼻涕一把眼泪地把外挂们放到另外一个进程中执行,既然惹不起难道还躲不起嘛。其他的耗电量、图形效率、脚本效率一类的也差不多,这里就不讲了,多讲了都是眼泪。

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

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

Google 浏览器要禁止 Flash?你不是当真了吧

Google 浏览器要禁止 Flash?你不是当真了吧

(而且骗人的是, Google 的 PPAPI 链接居然指的是 Mozilla 的这个页面。不知道是不是存心戳 Mozilla 一把)。

如果你是个软体工程式又有一颗好奇的心,表示无法理解 PPAPI 为何如此不受重视,你可以去这里看看 PPAPI 的说明档 ,在这里。

你一定会发现问题,其实不管你是不是软体工程师你都会发现这个问题。因为,这个 PPAPI 官方说明档连结里面,几乎没有文件。

Google 浏览器要禁止 Flash?你不是当真了吧

所以如果你这几天再看到文章开始提到的对话框,如果上面写的是 Flash,你只需要去下载一个最新的 PPAPI 的 Flash 外挂,或者下载一个新版的 Chrome。

以上这些我用个简单的故事方便理解:

所以,朋友,不要害怕,Flash 还在的。

如果你看到的是这个框:

Google 浏览器要禁止 Flash?你不是当真了吧

其实背后的原因还会更複杂一些。 这个是因为前期炒得沸沸扬扬的 Hacking team 被黑的事件中,Hacking team hacked 的一些非常严重的 Flash 漏洞被洩漏,于是 Chrome 把旧版本的 Flash 全部禁止了。

解决的方法也一样,下载一个最新的 PPAPI 的 Flash 外挂,或者下载一个新版的 Chrome 就好。

以下总结:

各大浏览器,比如 Chrome 禁止了 NPAPI 外挂,但是依然有内置 PPAPI 版的 Flash,本质原因是 Google 觉得以前的外挂架构不合理。加上最近 HT 爆出的 Flash 严重漏洞,才会把低版本的 Flash 禁止了。而这与 Flash 本身没有关係。

大家都知道,Flash 外挂有两个功能,一个是影片,一个是游戏。最近 HTML5 的确很热门,HTML 现在代替影片是没有问题,但是游戏不行。毕竟是新兴市场,还达不到完全取代 Flash 的地步。所以,浏览器不是禁止 Flash 外挂,只是出于安全考虑,对低版本的架构进行升级。

至于游戏,无论什幺工具,只要适合项目需求的都是好工具,更何况 App Store 从来没有用开发工具作为游戏分类的条件。因为玩家是不关心用什幺工具和语言开发,最关心的恰恰是游戏体验。这也让 Flash 有一定的生存空间。

网路上有不少人问:「如何评价 Google 浏览器禁止运行 Flash?」可以说,这只是一个美丽的误解。

上一篇: 下一篇:
相关文章