【问题标题】:Multiple user profiles / sessions in one CEF instance一个 CEF 实例中的多个用户配置文件/会话
【发布时间】:2015-02-03 04:47:05
【问题描述】:

是否可以在一个 CEF(Chromium 嵌入式框架)实例中同时运行多个用户配置文件(具有单独的 cookie、历史记录、本地存储等)?目标是允许在一个窗口中并排浏览多个“会话”(它实际上是一个 OpenGL 应用程序)。

我研究过两种可能的解决方案,每种都有自己的问题:

使用CefCookieManager

creating multiple CefCookieManagers 可以仅对 cookie 执行此操作。但是,历史记录和本地存储似乎没有类似的 API,现在仍然共享。

使用CefSettings::cache_path

CefSettings settings;
CefString(&settings.cache_path).FromASCII("C:\\CefCache");
CefInitialize(args, settings, app, nullptr);

这里的问题是CefSettings 与全局 CEF 实例相关联,而不是与每个浏览器/客户端相关联。


有没有我还没有发现的方法?

【问题讨论】:

  • 编辑的答案,有一个新的解决方案。
  • @Czarek:这是个好消息,谢谢!

标签: chromium-embedded


【解决方案1】:

如果仅涉及 cookie 和本地存储,并且您使用自定义方案处理程序或请求拦截来托管内容,那么您可以为每个配置文件使用不同的域/子域。请参阅此主题以供参考:http://www.magpcss.org/ceforum/viewtopic.php?f=6&t=11695

关于历史,您可以使用 OnBeforeBrowse 回调自行实现历史。

在上面提到的主题中还提到,在技术上可以为每个 CefRequestContext 指定不同的缓存路径(可以在浏览器创建期间提供)。因此,为 CEF 开发补丁可能是另一种选择。

编辑:CEF 修订版 2040 增加了对每个请求上下文的存储和权限完全隔离的支持,请参阅问题 1044 中的评论 #7:https://code.google.com/p/chromiumembedded/issues/detail?id=1044#c7

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-08
    • 2020-12-03
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多