Chrome、FireFox、Edge等最新版浏览器 中继续使用Flash Player方案

一、背景

Flash Player从1996年诞生开始,逐步成为一种广泛使用的多媒体程序播放器,因为Adobe大力推广其Flex作为RIA(因特 应用程序)的框架,第三方因此开发创造出众多丰富型互联 应用程序,最典型的如曾经火热一时的 页游戏,进一步丰富了Flash Player的使用场景。有数据统计,Flash Player曾经达到13亿台电脑安装使用,装机率超过90%。正因为如此,在数年前开发的各种业务系统,包括企事业单位的 站,或多或少也都依赖它才能正常运行。

然而互联 技术的更新换代一直是非常快的,因为Adobe一系列失误导致Flash Player错失了在移动平台的发展良机,漏洞太多加上HTML5、WebGL、WebAssembly等技术的不断成熟,当前主流的Chrome、Edge等浏览器于2021年1月22日左右发布的88版也纷纷对Flash Player痛下杀手,取消了其PPAPI插件的运行支持,微软也来补刀推出可选更新 KB4577586直接卸载原系统集成的Flash Player版本。对于那些依赖Flash Player的 站和业务系统,如何保证继续正常运行成为了难题。

二、现有方案

虽然3年前 Adobe就建议开发者将Flash内容及程序移植到 HTML5、WebGL 以及 WebAssembly,但客观现实是当初开发Flash相关内容和程序的公司可能都已经倒闭了,或者因为迁移成本过大、或者体制原因无法立项缺乏经费、或者对新技术储备不足等迟迟未做改造,比如咱们的CCTV官 就还有很多视频还需要Flash Player来播放,所以只能从浏览器端想办法了。而想要在浏览器中继续正常使用Flash Player,目前有以下几个可选的方案:

  1. 回退旧版本方案

这也是大连车务段采用的保守方案,卸载有时间炸弹逻辑的版本,将Flash Player回退到29版(无锁区及广告骚扰问题)使用,此方案虽然可用了,但不可避免的因为使用的是旧版本,其中存在已曝光的漏洞还是存在很大安全风险的,另外也只能在Chrome、Edge等浏览器87及以下版本及IE浏览器中加载使用。

  1. 特有浏览器方案

此方案也就是国产浏览器方案了,如360极速及QQ浏览器等,这些浏览器一般都是双内核,其中的Chromium内核版本一般都比较低,所以还可以继续加载Flash Player来使用,啥时候这些国产浏览器升级内核到88及以上版本,就彻底不支持了。典型的如4399 页游戏 站,也是推荐用户用国产浏览器搭配Flash Player中国区版(解除了时间炸弹但会收集你上 习惯来针对性弹广告)来使用(当然也可以回退版本,不过对小白个人用户来说是不知道如何操作的)。另外Adobe官方对企业用户想要继续使用Flash Player的解决方案说明:Update for Enterprise Customers Using Adobe Flash Player,推荐的第三方合作方叫HARMAN,据了解给出的方案就是提供一个内置了Flash Player的浏览器,一年五万刀费用,其实也是专有浏览器方案,不能在主流的Chrome、Edge、Firefox等浏览器中使用。

  1. 替代技术方案

在Github上有个开源的项目,https://github.com/ruffle-rs/ruffle,是一个用 Rust 语言开发的 Adobe Flash Player 模拟器,通过WASM技术实现在 页播放支持。但Ruffle并非完美无缺,当前它并不能保证完美兼容所有的Flash组件,有时候会遇到出错的情况,另外虽然作为浏览器的扩展可在Chrome等浏览器中调用,不过并未上架浏览器官方商店,只能手工部署安装,对商业用户来说并不友好。由于不是原生官方支持的,其兼容性、稳定性及播放性能都可能存在问题,后续能否长期更新维护也是未知数。

三、改进方案

从现有方案可以看出,想要完美解决问题,需要同时解决时间炸弹问题(32.0.0.371后的版本加入了时间炸弹的问题)、浏览器全兼容运行问题(Chrome、Edge等88版移除了Flash Player运行支持),在中国大陆地区出的特供版虽然无时间炸弹问题,但因为其收集电脑上 信息并针对性弹出广告,广大用户早就怨声载道,自然也不能用在商业环境中。而国际版从30.0.0.113开始的版本就加入了锁区运行限制,就是国际版正常不能在中国大陆地区的电脑上正常运行。所以对最新的国际版通过修改其控件特定位置的字节码从而解除其在锁区问题及时间炸弹问题。而想要兼容Chrome、Edge等88版及以后更高版浏览器的运行,目前全 上都还没有一个成熟的解决方案。通过 络搜索发现有PluginOK中间件(https://codechina.csdn.net/zorrosoft/pluginok)这样一个跨浏览器的原生小程序系统,通过简单摸索和测试验证,证明完全可以用来解决此问题。借助PluginOK中间件,有两种办法可以让Flash Player继续运行在Chrome、Edge等最新版浏览器中:

  1. PluginOK中间件搭配IE控件小程序(https://codechina.csdn.net/zorrosoft/pluginok/-/blob/master/Bin/IEApplet.txt),让Chrome、Edge、Firefox等浏览器变成双内核方案,而且还可以指定IE内核运行的版本,这种方案尤其适合那些以前只兼容IE低版本浏览器的 站,只需要对 站做简单改造,通过JS脚本连接Web Socket侦听端口,然后通过JSON组包发送命令即可,前端还可以与IE控件小程序互操作。此方案由于借助了IE内核,内存占用会高一些,可能会遇到IE 页加载ActiveX控件警告问题。
  2. PluginOK中间件搭配Flash Player 页播放小程序(https://codechina.csdn.net/zorrosoft/pluginok/-/blob/master/Bin/FlashPlayerApplet.txt),此方案完全甩开IE内核来加载Flash Player的ActiveX控件,运行性能比第一种方案好,内存占用低、体验也更好,不过 站改造这块更多一些,不过是一劳永逸的解决办法,如果是新项目要兼容Flash Player的运行,建议用此方案。

针对以上两个方案,也有体验版程序包可以下载:http://zorrosoft.com/Files/PluginOKFlash.zip,需要的朋友可以试试,如遇到问题,程序包中也有联系方式可以咨询。

这里虽然解决的是Adobe Flash Player的问题,微软的Silverlight也将在2021年10月12日到达支持结束,当初Silverlight可是和Adobe Flex同台竞技的火热程序框架,使用了Silverlight的各种业务系统也非常多,而且只支持IE浏览器。借助PluginOK中间件,还可以将使用了Silverlight的业务系统兼容到Chrome等浏览器运行,也是一箭双雕了。

四、总结

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月22日
下一篇 2021年1月22日

相关推荐