C++实现浏览器插件

lqglqglqg 2015-11-02 09:37:27
浏览器插件如何开发,请多指教
...全文
1055 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
White-平常 2019-04-09
  • 打赏
  • 举报
回复
引用 12 楼 hugui812376073 的回复:
大哥你弄得怎么样了,好像PPAPI 不支持win32 API
是支持的
赵4老师 2016-09-12
  • 打赏
  • 举报
回复
在兼容老版本API这个领域,google还是落后microsoft的。
入侵你的心 2016-09-12
  • 打赏
  • 举报
回复
大哥你弄得怎么样了,好像PPAPI 不支持win32 API
peter_luy 2016-06-29
  • 打赏
  • 举报
回复
引用 10 楼 mLee79 的回复:
[quote=引用 7 楼 peter_luy 的回复:] [quote=引用 6 楼 mLee79 的回复:] 哎, 刚好 PPAPI 的我还没弄过, COM, NPAPI 的我都弄过一个 C++ 的预处理器, 可以自动的完成 js 和 C/C++ 代码的绑定, 等有空了, 还是弄个 PPAPI 版本比较好... 弄了个预处理器处理类似下面的脚本, 自动的生成 C++ 代码, 然后就可以在 js 里直接调用: objDemo.config.url = "http://......"; objDemo.subobject.foobar(1,2,3) , objDemo.subobject.value = 234234; 啥的了... 啥时候无聊了就移植到 PPAPI 下去... 这东西如果不弄代码自动生成, 应该不麻烦的吧... NPAPI的Chrome不是已经不支持了吗。现在还是需要PPAPI的,但是这个不知道怎么发布,好像只能通过命令行参数启动chrome.exe来调试。
Chrome Native Messsaging 弄的都需要在 Google Store 上分发了, PPAPI 写的东西应该只能命令行启动才行, Google 肯定不会承担这种跑 Native Code 带来的安全风险... 反正自己编译个 Chromium 跑想咋弄就咋弄, 我以前弄的是在 嵌入式设备上跑浏览器扩展, 这些就完全不是问题了... [/quote]我现在是想把IE的ActiveX控件移植到Chrome上去,但是PPAPI的无法发布是个问题,NPAPI的只能在老版本的Chrome中使用,而且安全无法保障。这个都不知道怎么搞了!
mLee79 2016-06-27
  • 打赏
  • 举报
回复
引用 7 楼 peter_luy 的回复:
[quote=引用 6 楼 mLee79 的回复:] 哎, 刚好 PPAPI 的我还没弄过, COM, NPAPI 的我都弄过一个 C++ 的预处理器, 可以自动的完成 js 和 C/C++ 代码的绑定, 等有空了, 还是弄个 PPAPI 版本比较好... 弄了个预处理器处理类似下面的脚本, 自动的生成 C++ 代码, 然后就可以在 js 里直接调用: objDemo.config.url = "http://......"; objDemo.subobject.foobar(1,2,3) , objDemo.subobject.value = 234234; 啥的了... 啥时候无聊了就移植到 PPAPI 下去... 这东西如果不弄代码自动生成, 应该不麻烦的吧... NPAPI的Chrome不是已经不支持了吗。现在还是需要PPAPI的,但是这个不知道怎么发布,好像只能通过命令行参数启动chrome.exe来调试。
Chrome Native Messsaging 弄的都需要在 Google Store 上分发了, PPAPI 写的东西应该只能命令行启动才行, Google 肯定不会承担这种跑 Native Code 带来的安全风险... 反正自己编译个 Chromium 跑想咋弄就咋弄, 我以前弄的是在 嵌入式设备上跑浏览器扩展, 这些就完全不是问题了...
peter_luy 2016-06-27
  • 打赏
  • 举报
回复
引用 8 楼 mLee79 的回复:
我记得新版本的 Chrome 已经停止了对 NPAPI 的支持...
是的,所以要用PPAPI的。
mLee79 2016-06-27
  • 打赏
  • 举报
回复
我记得新版本的 Chrome 已经停止了对 NPAPI 的支持...
peter_luy 2016-06-27
  • 打赏
  • 举报
回复
引用 6 楼 mLee79 的回复:
哎, 刚好 PPAPI 的我还没弄过, COM, NPAPI 的我都弄过一个 C++ 的预处理器, 可以自动的完成 js 和 C/C++ 代码的绑定, 等有空了, 还是弄个 PPAPI 版本比较好... 弄了个预处理器处理类似下面的脚本, 自动的生成 C++ 代码, 然后就可以在 js 里直接调用: objDemo.config.url = "http://......"; objDemo.subobject.foobar(1,2,3) , objDemo.subobject.value = 234234; 啥的了... 啥时候无聊了就移植到 PPAPI 下去... 这东西如果不弄代码自动生成, 应该不麻烦的吧...

object scriptdemo {

	/*
	 *
	 */
	native {
		void XF__ObjectConstruct() 
		{
			_value = 123;
		}

		int		_value;
	}


	/*
	 *
	 */
	property get value() {
		//INT32_TO_NPVARIANT( _value , __result );
		XNPVariant  var( "asdfefsdf" );
		var.detachVariant( __result );
	}

/*
 *	root.subobject
 */
property get subobject() = object {
	
	/*
	 *
	 */
	native {
		void XF__ObjectConstruct() 
		{
			_value = 321;
		}

		int		_value;
	}

	/*
	 *
	 */
	property get value() {
		INT32_TO_NPVARIANT( _value , __result );		
	}

	property put value( val ) {
		if( NPVARIANT_IS_INT32( val ) )
			_value = NPVARIANT_TO_INT32( val );
		else if( NPVARIANT_IS_DOUBLE( val ) )
			_value = (int)NPVARIANT_TO_DOUBLE( val );
		else if( NPVARIANT_IS_BOOLEAN( val ) )
			_value = (int)NPVARIANT_TO_BOOLEAN( val );
		else
			return false;
	}

	method foobar( a , b , c ) {
		printf( "method foobar( a , b , c )\n" );
		INT32_TO_NPVARIANT( 123321 , __result );	
	}

	//
	//  function == method
	//
	function foobar( a , b ) {
		printf( "method foobar( a , b )\n" );
		INT32_TO_NPVARIANT( 321123 , __result );	
	}

	//
	//  function == method
	//
	function foobar( ... ) {
		printf( "method foobar( ... )  __argc : %d\n" , __argc );
		INT32_TO_NPVARIANT( 123123 , __result );		
	}
}

property get config() = object {
	property get url() {
		
	}

	property put url( val ) {
	}

	function set_timeout( val ) {
	}
}
}
NPAPI的Chrome不是已经不支持了吗。现在还是需要PPAPI的,但是这个不知道怎么发布,好像只能通过命令行参数启动chrome.exe来调试。
mLee79 2016-06-27
  • 打赏
  • 举报
回复
哎, 刚好 PPAPI 的我还没弄过, COM, NPAPI 的我都弄过一个 C++ 的预处理器, 可以自动的完成 js 和 C/C++ 代码的绑定, 等有空了, 还是弄个 PPAPI 版本比较好... 弄了个预处理器处理类似下面的脚本, 自动的生成 C++ 代码, 然后就可以在 js 里直接调用: objDemo.config.url = "http://......"; objDemo.subobject.foobar(1,2,3) , objDemo.subobject.value = 234234; 啥的了... 啥时候无聊了就移植到 PPAPI 下去... 这东西如果不弄代码自动生成, 应该不麻烦的吧...

object scriptdemo {

	/*
	 *
	 */
	native {
		void XF__ObjectConstruct() 
		{
			_value = 123;
		}

		int		_value;
	}


	/*
	 *
	 */
	property get value() {
		//INT32_TO_NPVARIANT( _value , __result );
		XNPVariant  var( "asdfefsdf" );
		var.detachVariant( __result );
	}

/*
 *	root.subobject
 */
property get subobject() = object {
	
	/*
	 *
	 */
	native {
		void XF__ObjectConstruct() 
		{
			_value = 321;
		}

		int		_value;
	}

	/*
	 *
	 */
	property get value() {
		INT32_TO_NPVARIANT( _value , __result );		
	}

	property put value( val ) {
		if( NPVARIANT_IS_INT32( val ) )
			_value = NPVARIANT_TO_INT32( val );
		else if( NPVARIANT_IS_DOUBLE( val ) )
			_value = (int)NPVARIANT_TO_DOUBLE( val );
		else if( NPVARIANT_IS_BOOLEAN( val ) )
			_value = (int)NPVARIANT_TO_BOOLEAN( val );
		else
			return false;
	}

	method foobar( a , b , c ) {
		printf( "method foobar( a , b , c )\n" );
		INT32_TO_NPVARIANT( 123321 , __result );	
	}

	//
	//  function == method
	//
	function foobar( a , b ) {
		printf( "method foobar( a , b )\n" );
		INT32_TO_NPVARIANT( 321123 , __result );	
	}

	//
	//  function == method
	//
	function foobar( ... ) {
		printf( "method foobar( ... )  __argc : %d\n" , __argc );
		INT32_TO_NPVARIANT( 123123 , __result );		
	}
}

property get config() = object {
	property get url() {
		
	}

	property put url( val ) {
	}

	function set_timeout( val ) {
	}
}
}
peter_luy 2016-06-27
  • 打赏
  • 举报
回复
引用 2 楼 mLee79 的回复:
啥浏览器的 IE 的 COM, FF 的 NPAI 还是 Chrome 的 PPAPI ...
Chrome 的 PPAPI
peter_luy 2016-06-27
  • 打赏
  • 举报
回复
请教Chrome的PPAPI。
赵4老师 2015-11-03
  • 打赏
  • 举报
回复
我是来看2楼秀肌肉的。
mLee79 2015-11-03
  • 打赏
  • 举报
回复
啥浏览器的 IE 的 COM, FF 的 NPAI 还是 Chrome 的 PPAPI ...

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧