目录 PPAPI NPAPI 迭代更新 未来走向 ---- ? ---- NPAPI Adobe Flash Player NPAPI是当今最流行的插件架构,最早是网景开发的,后来由Mozilla团队维护,几乎支持所有的浏览器,不过它存在很大的安全隐患,插件可以窃取系统底层权限 但是在功能开发时,更加方便,很多公司为了实现私有化浏览器方案,大多通过限制浏览器版本,使用NPAPI的形式进行功能开发。 但是,这种方式也是有风险的,这里列举一个案例: ? ,2012年Windows、Mac版本的Chrome浏览器先后升级了PPAPI Flash Player,并希望当年年底直接彻底淘汰NPAPI。 PPAPI的flash相较于NPAPI来讲,因为全在沙盒里面运行,内存占用更大,而且flash每次更新基本上都是修补安全漏洞。
<script> setTimeout(function(){ var myE = document.getElementById("myElement"); alert("jwGetPlaylist:" + myE["$version"]); var result = myE["jwGetPlaylist"](); result = myE["jwGetPlaylist"](); alert("jwGetPlaylist:" + result); }, 2000); </script>
由于安全以及稳定性方面的考虑,Google Chrome 于版本42起取消了对于 NPAPI 接口的支持。 虽然大部分应用——例如QQ快速登录以及支付宝数字证书——已经抛离了 NPAPI 来实现原有业务,但仍有不少应用需要 NPAPI 的支持。 举例来说,阿里旺旺无法被高版本 Chrome 调起,就是因为缺少 NPAPI 支持所致。与此同时,部分原本使用 NPAPI 支持 Google Chrome 浏览器的网银,也无法使用了。 随后使用任意文本编辑器打开 GreenChrome.ini ,将“恢复NPAPI”设置为等于1保存即可。 重新启动 Chrome 后,就恢复了对于 NPAPI 的支持 除了恢复 NPAPI 支持之外,GreenChrome 还支持非常多的细节调整,包括鼠标手势,滚轮切换标签,老板键等。
转载CSDN博友的一篇关于NPAPI插件机制的博文。 原文地址:http://blog.csdn.net/milado_nju/article/details/7216136 # 插件机制(NPAPI plugin) ## 概述 Chromium中的NPAPI 原始的NPAPI的接口使用起来不是很方便,因而有贡献者对其进行了封装以利于其使用。一个比较著名的开源项目是Firebreath。 它将原始的C风格的NPAPI进行封装成C++风格的接口,非常方便用户使用,而且有针对Windows和X window的移植,用户无需对底层特别了解。 web frame和webcore对象的交互 webkit/plugins/npapi/webplugin_impl.
距Chrome上次更新时间已经过去了一个多月,虽然从外观上并不能察觉到什么变化,但其实从32开始Chrome已经抛弃了NPAPI支持。这一点我们下文再说。 最后也是chrome 32变化最大的一项,取消了NPAPI支持。最为简单的例子就是支付宝,在chrome 32上支付宝安全控件无法加载,登陆界面出现了验证码。 此外大量使用NPAPI的扩展也受到波及,例如著名手势扩展pig toolbox。
NPAPI 支持已结束 过去,许多插件都是使用一种称为 NPAPI 的旧系统开发的。如今,只有少量网站在使用 NPAPI 插件,因为这些插件有时会给网站带来安全风险。 但是,一些使用 NPAPI 的插件(包括 Silverlight、Java 和 Unity)将无法使用。 如何临时启用 NPAPI 插件 如果您必须使用 NPAPI 插件,可以采用下面介绍的临时解决方法(在 Chrome 45 版于 2015 年晚些时候发布之前,此方法将一直有效): 打开 Chrome。 在屏幕顶部的地址栏中,输入 chrome://flags/#enable-npapi 在随即打开的窗口中,点击启用 NPAPI 标记下方显示启用的链接: 点击页面左下角的立即重新启动按钮。 Chrome 45 版本发布后,您将需要使用其他网络浏览器来加载需要 NPAPI 插件的内容。
flash官网(注意下载和系统浏览器相对应的包)PPAPI:供Opera (15以上)、Chromium(开源谷歌)浏览器使用NPAPI:适用于FireFox(火狐)、Safari(苹果)、Opera (欧朋,12.17版以下) 然后解压:tar -zxvf flash_player_npapi_linux.x86_64.tar.gz 复制:sudo cp libflashplayer.so / 最后重启浏览器即可 官方安装介绍readme readme.txt 参考:Adobe Flash Player ActiveX与PPAPI与NPAPI
1,在给chrome加上npapi能力的时候,发现有窗口模式下,会出现绘制不完整的情况。 后来想到的办法就是把npapi的窗口也挂到主窗口。但这要解决显示隐藏、焦点等问题。 2,mb在显示demo.finebi.com里的竖排文字的时候,会出现绘制重叠的问题。
让 Gears 在 Safari 工作需要不同的机制,安装 Gears 的时候你会发现,Gears 由两个部件组成:一个 NPAPI 插件位于 “/Library/Internet Plugins”,一个 NPAPI 没有办法早期加载,因此我们需要一个小小的 InputManager 部件来实现。
鉴于大家对于SkeyePlayer插件的使用还不太熟悉,特此写一篇插件的使用文档,供大家参考;SkeyePlayer插件有两种,一种是基于IE的ActiveX控件,一种是基于FireFox(也支持多浏览器)的npAPI 插件;两种插件均包含源码,由于FireBreath框架生成代码比较多,npAPI插件只包含关键代码,后续会提供专门讲解FireBreath生成SkeyePlayer npAPI插件的文档,下面我们开始讲解两种插件如何使用 +/SkeyePlayerWebActiveX);注意,IE11已经不支持AttachEvent的方式触发浏览器页面事件,所以,需要导出播放事件的同学在前端页面编写的时候需要做好IE11的兼容性处理;npAPI 插件npAPI插件由FireBreath框架生成,该框架提供了非常详细的步骤即可生成我们想要的播放器插件框架,框架生成好以后将SkeyePlayer源码的SkeyePlayerPlugin目录下的代码替换掉生成的代码即可 网页端调用我们已经了解了插件的导出接口,那么我们就可以很容易的编写JS来实现网页端的播放啦,当然,在此之前,我们需要注册一下插件,在SkeyePlayer目录下有reg.bat和np_reg.bat批处理文件分别对OCX和npAPI
开发浏览器时遇到了flash的问题,网上搜了下,解决的方法基本是加npapi、ppapi,一开始奔着ppapi去的,没有解决,后来用的npapi,在项目的output下新建plugins文件夹,将 NPSWF32
腾讯是通过NPAPI和 ActiveX 来实现的。 (网景插件应用程序编程接口(NPAPI, Netscape Plugin Application Programming Interface)是Netscape Navigator、Mozilla Suite 因为IE从5.5版本后停止支持 NPAPI,所以, 腾讯对 IE浏览器 采用 ActiveX 插件,对除IE浏览器等其它主流浏览器采用NPAPI的形式来实现快速登录。 当然,如果用ActiveX呢,你的浏览器又得下载插件,如果用NPAPI呢部分浏览器还要审核插件,并且伴随着时代的发展,NPAPI和ActiveX 已经显得老态龙钟,所以,腾讯想了个新花招来实现快速登录。
$ sudo dnf install vlc (可选)您可以使用以下命令安装以下有用的软件包: python-vlc (Python绑定)和npapi-vlc (用于在Web浏览器中运行VLC的插件特定代码 ,当前为NPAPI和ActiveX )。 $ sudo dnf install python-vlc npapi-vlc 要使用GUI运行VLC媒体播放器,请按超级键打开启动器,然后键入vlc以启动它。
随着 Silverlight 与 Flash 的终结,以及主流浏览器(Chrome、Firefox)彻底移除 NPAPI 支持,Pipelight 项目已经停止维护。 但这个项目提供了一个解决 ActiveX 控件运行的思路:通过 Wine 后台运行 Windows 插件,并通过本地 NPAPI 接口暴露给浏览器。。 而且国内的浏览器厂商,如360、龙芯浏览器,都保留了 NPAPI 插件的支持,所以这套方案看起来非常老旧,但依然可行。 其架构如下: Linux 集成层:libpipelight.so,实现 NPAPI 接口,与浏览器通信; Windows 执行环境:pluginloader.exe,通过 Wine 执行 Windows 当然,ActiveX 控件的机制与 NPAPI 插件不同,Pipelight 本身无法直接加载 ActiveX,需要在此基础上进行二次开发与兼容处理。
火狐不支持ActiveX控件,需要使用标准的NPAPI插件。 NPAPI为了紧密的与各个开源浏览器团结起来,共同抗击IE的垄断,Chrome的插件,也遵循了NPAPI(Netscape Plugin Application Programming Interface 而NPAPI插件以一个Dll之类的作为物理载体(windows下dll,linux下是so...)进行提供,里面同样也实现了一组规定的API。 在Chrome中nphostapi.h中,定义了所有NPAPI相关的函数指针和结构,这个文件放置在glue目录下,如果看过前面碰过的文章就知道,在WebKit内肯定也有一套相同的东西;在npapi.h/ 关于NPAPI的更多细节,Chrome并没有提供任何文档,但是,各个先驱的浏览器们都提供了大量丰富的文档。比如,你可以到 这里,查看firefox中的NPAPI文档,基本通用。。。2.
NPAPI插件进程:该进程是为NPAPI类型的插件而创建的。其创建的基本原则是每种类型的插件只会被创建一次,而且仅当使用的时候才创建。插件进程是被共享的。 Pepper插件进程:同NPAPI插件进程。 3. 多线程模型 每个进程内部都有很多的线程,多线程的目的是为了保持用户界面的高响应度,保证UI线程不会被其他费时的操作阻塞从而影响用户体验。
CEF1和CEF3 CEF1是单进程的,实现了更多的特性,内存使用更少,与客户端应用更能完美的结合,使用的是WebKit的API,但是FLASH无法在这个框架中正常播放,不支持html5的音频和视频,只支持NPAPI 关于NPAPI插件的相关知识,请参阅这里:http://developer.chrome.com/extensions/npapi.html(好像要FQ) CEF3是多进程的,使用异步消息的方式来完成主进程和其他进程的通信 (其他进程有可能是Webkit,也有可能是V8的解析引擎进程),使用的是chromium官方的内容呈现API,支持NPAPI和PPAPI插件,有一个单独的进程用于调试,相对于CEF1来说,虽然可以播放FLASH
在屏幕顶部的地址栏中,输入 chrome://flags/#enable-npapi 在随即打开的窗口中,点击启用 NPAPI 标记下方显示启用的链接: 点击页面左下角的立即重新启动按钮。
第二阶段: 安防进入百家争鸣的时代,同时Web 2.0也越来越流行,单单海康、大华几个大厂已经不能满足所有的需求,于是,通用化、Web B/S化成为了需求,这个阶段的平台大部分采用RTSP+OCX插件+npapi 插件的方式,采用RTSP协议接入所有的网络视频设备,再通过浏览器插件的方式,实现对于IE、Firefox、chrome(那时候的Chrome还是支持npapi接口的,现在已经不支持了)浏览器的通用播放, ; 总结这个阶段的特点:RTSP+插件; 第三阶段: 移动互联网的飞速发展改变了第二个阶段,尤其是H5的推动,这个阶段的Web被Chromium垄断、移动端被HLS(m3u8)协议占据,原来的OCX、npapi
1、Flash player版本介绍 Flash Player有三个版本,即Flash Player Activex,Flash Player PPAPI及Flash Player NPAPI。 NPAPI:适用于FireFox(火狐)、Safari(苹果)、Opera(欧朋,12.17版以下)。 2、离线包下载 方法如下: (1)首先确定哪个浏览器需要调用flash插件。 谷歌-PPAPI-ppapi_cn结尾: https://www.flash.cn/flashplayer/3200387/install_flash_player_ppapi_cn.exe 火狐-NPAPI-cn