
NPAPI插件
NPAPI插件开发,可能遇到的各种问题,及解决办法。这应该是目前已知最全的。
柳鲲鹏
建立了编程学(编程基本功、平台化编程)、六石管理学等几个流派。
每涉及一个领域,都是顶级砖家。在这些领域中,如果遇到问题,最后肯定是搜索到本博客。
展开
-
FireFox支持NPAPI接口,最新版本是52.9,53已经不支持了
今天下载了几个版本:52.3支持。 52.9支持。 53.0不支持。 54、55都不支持。 也就是说,最高版本是52.9 32位。 安装之后,软件会自己升级,然后就不能用了。怎么办?菜单(右上三条横线的按钮),选项,高级,更新。选中:不检查更新。不选中:使用一项系统服务以静默安装更新...原创 2020-01-03 15:49:59 · 3269 阅读 · 0 评论 -
chrome安装测试打包插件
具体操作是:运行浏览器 输入:about:extensions 选择开发者模式 安装,测试加载已解压的扩展程序,找到自己的插件目录,选择。打包扩展程序原创 2019-12-04 15:00:50 · 470 阅读 · 0 评论 -
The 'manifest_version' key must be present and set to 2 (without quotes)
在manifest.json中添加:"manifest_version": 2,原创 2019-12-04 14:57:18 · 969 阅读 · 0 评论 -
NPAPI插件无法加载,有可能跟JDK相关
昨天发现插件不能用(about:plugins看不到)。开始认为是FIREFOX问题。后来发现别人的插件能看到。于是自己做了个实验,使用npruntime,就能正确看到。 今天排查了一天,发现跟JDK相关。...原创 2019-11-21 19:23:20 · 830 阅读 · 0 评论 -
NPAPI最简单的代码
具体代码编译参考下载的链接:https://download.youkuaiyun.com/download/quantum7/11988429注意,需要的接口版本必须是1.9.0.17:#include <stdio.h>#include <stdlib.h>#include <string.h>#include "npupp.h"NPNe...原创 2019-11-21 13:00:49 · 900 阅读 · 0 评论 -
FireFox 64位不支持NPAPI插件,不论是32位还是64位
试了确实不行。也可能插件注册位置发生了变化?后来上网搜索,看到一个帖子:http://mozilla.com.cn/thread-354452-1-1.html明确说明:Win64 的 Firefox 自 Fx 43 正式发布起就不支持除 Flash 和 Silverlight 之外的 NPAPI 插件虽然官方推出了64位版本,但对于大多数国内用户来说,64位版火狐会导致很多...原创 2019-08-31 08:09:18 · 1284 阅读 · 0 评论 -
WINDOWS NPAPI插件小结
比LINUX难多了。遇到以下坑:VS编译。浏览器选择。需要32位编译和环境。dll文件名的要求。如何让插件生效。JAVA反射后导致画面不出来。运行时的目录问题。JNI的linux与windows差异太大。做这个事情之前,最好能找一个能运行的可用插件,这样可以确认环境的可用性。...原创 2019-08-30 11:20:39 · 425 阅读 · 0 评论 -
Windows下FireFox插件dll文件名,必须是np开头,不能是plugin结尾
不是np开头,about:plugins中就看不到插件。结尾的要求比较怪异:csdn-plugin:错误。csdnplugin:正确。原创 2019-08-29 11:15:05 · 593 阅读 · 0 评论 -
VS2010:外部依赖目录错误,怎么办
吾编译不过,看了编译错误,一直使用VC的npapi.h。而吾自己已经指定了npapi.h。从外部依赖目录来看,确实文件不对。项目,右键,仅用于项目,仅对项目运行代码分析。 然后又重新设置了目录,终于对了。...原创 2019-08-29 09:29:39 · 1064 阅读 · 0 评论 -
WINDOWS下测试NPAPI插件,请使用FireFox 49版本
其他版本都有这样那样的问题。查看时,输入:about:plugins原创 2019-08-29 13:08:59 · 772 阅读 · 2 评论 -
FireFox 32不支持64位的NPAPI dll插件
也就是说:FireFox要32位让。DLL也要是32位编译。这样插件才能正确加载。原创 2019-08-31 08:26:32 · 807 阅读 · 0 评论 -
NPAPI插件:不要使用malloc,使用NPN_MemAlloc
前者在windows上会崩溃,后者则正常。释放也使用NPN_MemFree。根据测试经验,释放时经常出错,或者参数传递不了。在进行参数交互的时候,必须这样做。...原创 2019-09-03 16:56:45 · 519 阅读 · 0 评论 -
NPAPI:WINDOWS中,调用函数不能阻塞
近日解决一个问题,动不动卡死。这太奇怪了。在LINUX上是正常的。经过反复分析,结论就是:NPAPI插件,网页调用接口,不能被阻塞。一旦阻塞,即使线程正常处理,也会卡死。怎么办?异步处理。...原创 2019-09-05 13:54:21 · 383 阅读 · 0 评论 -
NPAPI:JS的Number,在接口中可能是int32,也可能是double
今天同事告诉吾一个问题,120无效,120.5有效。而接口是float。吾一听,就明白了:应该是Number()的问题。这个优先传递整数,如果不是整数再作为浮点。吾找到转换参数的代码,加了个判断:浮点参数多判断整数,整数参数多判断浮点。结果就对了。...原创 2019-09-05 14:16:52 · 495 阅读 · 0 评论 -
JNI中,getBytes()最好指明UTF-8
同事报了个bug,说是中文文字取不到。吾就感觉奇怪,在LINUX上正确,在windows上怎么就不对?是不是测试人员搞错了?吾亲自试之……果然不对。不对怎么办?这个……还好吾对编码问题很了解,自然就想到了编码问题。于是,吾在getBytes()时,原来没有参数,现在加上UTF-8。果然,立竿见影,文字取到了。当然因为吾智商低,通过JNI调用getBytes()时,开始参数直接使用"...原创 2019-09-05 16:30:11 · 1515 阅读 · 0 评论 -
JS动态插入插件后,不能马上使用,必须刷新
完成插件以后,吾很贴心的做了一个更新脚本。当然,毫无疑问,吾提供了一个范例网页,可以运行各种功能。没有范例,汝让别人猜?然后自己很是得意了一番,合作方拿到之后,应该很方便的测试使用了。结果今天说问题严重,连文件也新建不了。不会吧?咱这边反复测试,一切正常。怎么到了新环境就……这魔鬼定律……当然这是有人转述的。吾当时就问,汝有没有问清楚?范例能不能正确执行?他们的环境是什么?当传声筒谁不会?...原创 2019-09-10 15:44:44 · 791 阅读 · 0 评论 -
插件与浏览器的关系
总结如下,供参考:浏览器可有有多个实例,而每个浏览器实例是一个进程。 每个浏览器实例中,可以有多个插件。 一个浏览器实例,只加载插件库一次。因为浏览器是一个进程,所以库中的表态变量是不同插件实例共用的。这一点千万要注意。 一个浏览器实例中,只能有一个JAVA虚拟机。同样的,虚拟机加载的类字段是表态的,那么也是各实例共用的。...原创 2019-10-10 10:15:10 · 567 阅读 · 0 评论 -
WINDOWS下FireFox插件没有固定目录
跟吾一样,很多朋友在找插件目录,结果看到很多错误说法。经过吾仔细研究,结论就是没有固定目录。那么怎么让一个插件生效呢?通过注册表操作。具体参考:https://blog.youkuaiyun.com/quantum7/article/details/100118557...原创 2019-08-28 14:32:10 · 669 阅读 · 0 评论 -
WINDOWS下如何让NPAPI插件生效
比如安装了FireFox,输入about:plugins,就可以看到自己的插件。如果看不到自己的插件,怎么办?打开regedit:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MozillaPlugins新建项,名类似@csdn.com/npapitest项下新建字符串,名为Path,填写dll的路径。还可以填写其他内容。具体就不多说了。...原创 2019-08-28 14:31:22 · 1196 阅读 · 0 评论 -
浏览器的NPAPI插件技术不要学了,已经淘汰几年了
IE不用说了,自己都淘汰了;Chrom,FireFox(从52开始)都明确放弃。虽然在某些场合下可以使用,实际上意义已经不大了。比如FireFox,除非能够安装指定的版本,否则插件完全不能用。那么使用什么插件技术?吾亦不是太清楚,WebExtensions?能否达到要求?比如说,吾做一个插件,在插件中调用另外一个应用进行绘制,怎么办?...原创 2019-08-15 17:19:10 · 2635 阅读 · 2 评论 -
FireFox的插件范例,竟然有问题
最近研究FireFox的插件。以吾这智商,当然是先学习别人的范例。不错,FireFox自己就有范例。 第一个范例编译通过了,也看到运行结果了。 第二个范例编译通过了,也运行了,而期望中的绘制,一直没有出现。心里这个气啊,汝自己的范例都不能正确运行,这不是害大家吗?...原创 2019-07-26 07:02:05 · 409 阅读 · 1 评论 -
终于完成了一个能够绘制的FireFox插件
要说只做个插件,那很容易,npruntime就可以顺利编译通过。做过的朋友都知道,难点在于怎样绘制。给的范例根本绘制不出来。 这个问题困扰了吾很久,吾差点以为自己搞不出来了。这又不是一个人搞大项目,一个技术难点,吾搞不出来,那多丢脸? 前天对工作进行了反思: 首先这个工作不可能很难。否则大家都玩不下去。 既然别人也能够绘制,说明有简单的路子。 所以,吾当前走入了死...原创 2019-07-31 06:41:27 · 693 阅读 · 2 评论 -
LINUX开发FIREFOX的插件:编译npruntime
工作需要,好不容易编译过了。其实这个已经很古老了,貌似最新的版本已经不支持。下载sdkhttps://developer.mozilla.org/en-US/docs/Mozilla/Gecko/Gecko_SDK注意,必须下载xulrunner-1.9.0.17.en-US.linux-i686.sdk.tar.bz2。别的都编译不过。下载npruntimehttps://d...原创 2019-07-21 14:49:29 · 1092 阅读 · 0 评论 -
NPAPI中返回一个字串的正确做法
比如,获取当前构建的版本号,怎么办?有人马上说,定义一个常量,直接使用即可:#define BUILD_VERSION "1.0.2"static bool getVersion(...){ STRINGZ_TO_NPVARIANT(BUILD_VERSION, *result); return true;}从逻辑上来说完全正确。从实际运行来说……必然崩溃!...原创 2019-08-19 15:08:10 · 387 阅读 · 0 评论 -
NPAPI确实不安全,因为功能太强大
NPAPI为什么要淘汰呢?因为不安全。为什么不安全?功能太强大了,可以说能够做权限之内的所有事情,比如读取、删除。可是正因为强大,所以很多事情能够做,容易做。其他方式就很难。其实吾想,难道浏览器不能通过允许的方式,限定某些插件运行?...原创 2019-08-21 09:26:59 · 1753 阅读 · 0 评论 -
JS/NPAP之间传递数组:NPVARIANT_TO_OBJECT/OBJECT_TO_NPVARIANT
从NPAPI中返回数组,代码要这样写。已经过本人测试:// 这个写法看起来怪异,可是必须这样写!// Get window object.NPObject* pWindow = NULL;NPN_GetValue(mNpp, NPNVWindowNPObject, &pWindow);//Get NPVariantchar buf[16]="Array()";NPStr...原创 2019-08-18 15:50:17 · 606 阅读 · 0 评论 -
新版FireFox使用NPAPI插件的办法
使用带ESR名的版本,即:Firefox 火狐浏览器 延长支持版 在地址栏输入:about:config单击右键,新建一个布尔变量plugin.load_flash_only。新建后是true,再点以下是false。重启浏览器。这个具体没有用过,不如更新ESR版本。...原创 2019-08-17 08:19:06 · 9020 阅读 · 1 评论 -
开发NPAPI浏览器插件要注意的事项
NPAPI已经被明确声明淘汰了。如果不是工作需要,不要学习。参考:https://blog.youkuaiyun.com/quantum7/article/details/99645386话是这么说,已有的插件怎么办?工作上就是需要怎么办?有的事情,确实需要插件才能完成,怎么办?浏览器的选择大多数浏览器已经不支持了。可是确实有很多人需要这个东西。有人说,那不升级浏览器,一直用老的不就可以了...原创 2019-08-17 08:12:17 · 701 阅读 · 0 评论 -
JS中字串转参数用的false/true
var param1 = document.getElementById("param1").value;怎么样转换为false/true作为参数传递?本来以为是个简单问题,new Boolean(param1),结果不是false/true。怎么办?正确做法:plugin.check(param1 == "true");...原创 2019-08-16 18:28:27 · 666 阅读 · 0 评论 -
WINDOWS用VS2010开发NPAPI插件步骤
本来想自己写一个,可惜是内外网。这里就直接提供一个链接,大家直接过去看:https://blog.youkuaiyun.com/shangbolei/article/details/52457628初步熟悉之后,可以试试VS2017等等。提示:编译需要xulrunner 1.9.0.17。其他版本都不行。下载链接:http://ftp.mozilla.org/pub/xulrunner/...原创 2019-08-28 08:11:50 · 417 阅读 · 0 评论 -
VS编译NPAPI:error C2733:不允许重载函数 “NP_Initialize"的第二个参数
打开npupp.h检查前后定义,对比不同位置的参数,有的地方需要第二个参数:#ifdef XP_UNIX#endif也有的前面的修饰符不对,统一起来就好。原创 2019-08-28 09:18:23 · 591 阅读 · 0 评论 -
VS编译NPAPI:error C2065: “PCONTEXT”: 未声明的标识符
在winnt.h爆粗。解决办法:打开npapi.h, 去掉#include <windef.h> 增加#include <windows.h>原创 2019-08-28 08:45:21 · 2869 阅读 · 0 评论 -
VS编译NPAPI:jref类型出错
相应的函数使用包起来。#ifdef OJI#endif原创 2019-08-28 09:32:44 · 425 阅读 · 0 评论 -
60版FireFox无法在win7虚拟机上安装
原因未知。不知道是虚拟机的问题,还是版本不对。后来改用 53/49版本,都能够成功安装。看来60系列已经不支持win7了。原创 2019-08-28 10:33:42 · 534 阅读 · 0 评论 -
xulrunner下载连接
http://ftp.mozilla.org/pub/xulrunner/release原创 2019-08-16 08:21:05 · 1178 阅读 · 0 评论