Webkit NPAPI plugIn.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Webkit NPAPI plugIn

修改CPlugin.cpp 触发回调函数 例子:当mplayer播放完毕后触发playOver回调函数 修改CPlugin.cpp 析构函数:释放掉回调函数资源 TBD. * * Object-updateWid Webkit Scriptable NPAPI Plugin 主要内容 环境搭建及编译 所需工具及源码 NPAPI 接口 Netscape Plugin Application Programming Interface Npruntime接口 如何写plugin:修改两部分接口 环境搭建及编译 环境搭建:(Fedora 10) qt 4.5.2 npruntime源码 tar zxf npruntime.tar.gz xulrunner-sdk源码 tar zxf xulrunner-4.en-US.linux-i686.sdk.tar.bz2 环境搭建及编译 切换到npruntime目录 cd npruntime/ 修改npruntime/npp_gate.cpp文件 注释掉函数NPP_GetJavaClass (void); 如下: 环境搭建及编译 qmake –project(创建.pro文件) qmake(生成Makefile文件) vi Makefile 增加xulrunner路径到INCPATH 增加LFLAG:–shared 修改TARGET make 生成.so文件 cp ***.so /usr/lib/mozilla/plugins/ 环境搭建及编译 修改后的Makefile Webkit NPAPI Plugin框图 分为两部分内容: 基础通信接口(NPAPI) plugin的初始化(initialize)、建立(new)、注销(destroy)、关闭(shutdown)等 JavaScript脚本接口(Npruntime) Browser如何通过JavaScript调用到plugin的函数 Plugin如何调用到browser提供的标准JavaScript函数 WebKit Plugin JavaScript通信 基础通信 NPAPI NPAPI标准包括3部分 NPP_***()函数:plugin提供给browser的函数 NPN_***()函数:browser提供给plugin的函数 对应的数据结构 参考:API Reference Netscape Gecko Plugins V2.0.pdf NPN_***、NPP_***、对应数据结构 Webkit如何与plugin建立联系、注销 NPError NP_Initialize(void) 当plugin第一次被load时调用NP_Initialize 一个plugin只能Initialize一次 使browse得到plugin的NPP_*函数且提供NPN_*函数给plugin NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16 mode, int16 argc, char *argn[], char *argv[], NPSavedData *saved); NPP_New可以被调用多次,即创建一个plugin的多个实例(instance) NPError NPP_SetWindow(NPP instance, NPWindow *window) 如果plugin是window的,则调用该函数建立起相应的窗口 … … NPP_Destroy (…) 每一个NPP_New都会对应一个NPP_Destroy NP_Shutdown (…) 当最后一个plugin的实例被Destroy后,调用NP_Shutdown卸载该plugin ① Webkit调用框图 object id=“player” type=“application/mplayer” param name=“src” value=“/home/siyt/av/avi2.avi” / /object 检测出objecttag 搜索webkit默认路径下的.so文件 是否有与type对应的.so文件 调用NP_GetValue得到plugin名字和描述 调用NP_GetMIMEDescription得到plugin的MIMEType .so文件中是否包含以下两个函数: NP_Initialize和NP_Shutdown 退出 N Y 调用NP_Initialize函数 保存NP_Shutdown函数指针 .so文件中是否包含以下两个函数: NP_GetMIMEDescription和

文档评论(0)

me54545 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档