一个CEF实例中的多个用户配置文件/会话

时间:2015-02-03 04:47:05

标签: chromium-embedded

是否可以在一个CEF(Chromium Embedded Framework)实例中同时运行多个用户配置文件 - 具有单独的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实例相关联,而不是与每个浏览器/客户端相关联。


有没有办法做到这一点,我没有发现?

1 个答案:

答案 0 :(得分:2)

如果它只是关于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