问个难点问题:如何在CEF3中创建一个全局的v8对象

starytx 2017-04-27 12:17:02
问题背景:
通常,通过在继承自CefRenderProcessHandler的处理类的OnContextCreated方法中来注册上下文中的v8对象,
比如:
CefRefPtr<CefV8Value> window = context->GetGlobal();
CefRefPtr<CefV8Value> pObjpub = CefV8Value::CreateObject(NULL);
window->SetValue("testObj", pObjpub, V8_PROPERTY_ATTRIBUTE_NONE);

这个对象testObj也只能在这个上下文中可以使用,相当于是一个页面中。那如何才可以创建在不同页面(不同的上下文环境)中可以共享访问的对象呢?
...全文
670 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
starytx 2017-04-28
  • 打赏
  • 举报
回复
引用 6 楼 oyljerry 的回复:
都进程隔离了,它本身就不希望你共享对象吧,不然就会容易导致进程不稳定。 可以考虑共享数据,这样可以用一些进程通信的方法
也许是为了稳定吧,每创建一个browser,就会执行一个子进程renderer,所以每个上下文都不在一个进程里,应该没办法创建都可以访问的对象了,要想实现共享对象,得想其他办法了
oyljerry 2017-04-28
  • 打赏
  • 举报
回复
都进程隔离了,它本身就不希望你共享对象吧,不然就会容易导致进程不稳定。 可以考虑共享数据,这样可以用一些进程通信的方法
starytx 2017-04-28
  • 打赏
  • 举报
回复
引用 4 楼 worldy 的回复:
http://www.cnblogs.com/guolixiucai/p/4791235.html
谢谢提供资料,看来只能自己慢慢啃了
worldy 2017-04-28
  • 打赏
  • 举报
回复
http://www.cnblogs.com/guolixiucai/p/4791235.html
zhujinqiang 2017-04-28
  • 打赏
  • 举报
回复
参考 http://blog.csdn.net/cqltbe131421/article/details/52598554
starytx 2017-04-27
  • 打赏
  • 举报
回复
引用 2 楼 worldy 的回复:
太高大上了,表示完全看不懂
没有啊。只是我对CEF3框架不了解,又不想看英文资料,哎。现在发现每个页面就是一个上下文,每个上下文都在一个单独的renderer进程中,好像没有办法创建在每个上下文中都可以访问的对象。
worldy 2017-04-27
  • 打赏
  • 举报
回复
太高大上了,表示完全看不懂
starytx 2017-04-27
  • 打赏
  • 举报
回复
问题补充: 经过调试,发现每个页面一个进程,也就是说各个context分别在不同的进程,这样的话,应该更不好办了

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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