CEF类笔记-cef_app

cef_app.h

int CefExecuteProcess(const CefMainArgs& args, CefRefPtr<CefApp> application, void* windows_sandbox_info);

应该从应用程序入口点函数调用此函数以执行辅助进程。它可用于从浏览器客户端可执行文件(默认行为)或由CefSettings.browser_subprocess_path的值指定的单独可执行文件运行辅助进程。如果为浏览器进程调用(在命令行中没有“type”进行标识),它将立即返回值-1。如果为可识别的辅助进程调用,它将阻塞,直到该进程应该退出然后返回进程退出代码。application 参数可以为空。windows_sandbox_info参数仅在windows上使用,可以为空(请参阅 cef_sandbox_win.h获取详细信息)。

bool CefInitialize(const CefMainArgs& args, const CefSettings& settings, CefRefPtr<CefApp> application, void* windows_sandbox_info);

应该在主应用程序线程上调用此函数以初始化CEF browser进程。application参数可以为空。返回值true表示成功,返回值false表示失败。

void CefShutdown();

应该在主应用程序线程上调用此函数,以便在应用程序退出之前关闭CEF browser进程。

void CefDoMessageLoopWork();

执行CEF消息循环处理的单个迭代。此函数用于CEF消息循环必须集成到现有应用程序消息循环中的情况。不建议大多数用户使用此函数;如果可能的话,请使用CefRunMessageLoop()函数或CefSettings.multi_threaded_message_loop。在使用这个函数时,必须注意平衡性能和CPU的过度使用。建议启用CefSettings.external_message_pump选项,以便CefBrowserProcessHandler::OnScheduleMessagePumpWork()回调可以促进调度过程。此函数只能在主应用程序线程上调用,并且只能在使用CefSettings.multi_threaded_message_loop值为false。此功能不会阻塞。

void CefRunMessageLoop();

运行CEF消息循环。使用此函数而不是应用程序提供的消息循环,以在性能和CPU使用之间获得最佳平衡。此函数只能在主应用程序线程上调用,并且只能在使用CefSettings.multi_threaded_message_loop值为false。此功能将一直阻塞,直到系统接收到退出消息。

void CefQuitMessageLoop();

退出通过调用CefRunMessageLoop()启动的CEF消息循环。此函数只能在主应用程序线程上调用,并且只能在使用CefRunMessageLoop()时调用。

void CefSetOSModalLoop(bool osModalLoop);

在调用诸如TrackPopupMenu之类的Windows api(这些api进入模式消息循环)之前设置为true。退出模式消息循环后设置为false。

void CefEnableHighDPISupport();

在进程启动期间调用以在Windows 7或Windows 7上启用高DPI支持新的。旧的Windows版本应该让DPI不知道,因为它们不支持DirectWrite,而且GDI字体的紧排非常严重。

CefApp

实现此接口以提供处理程序实现。方法将由指定的进程和/或线程调用。

virtual void OnBeforeCommandLineProcessing(const CefString& process_type, CefRefPtr<CefCommandLine> command_line) {}

提供了在CEF和Chromium处理之前查看和(或)修改命令行参数的机会。浏览器进程的process_type值将为空。不要保留对传递给此方法的CefCommandLine对象的引用。这个CefSettings.command_line_args_disabled的值可用于从空命令行对象开始。在调用此方法之前,将设置CefSettings中指定的、等同于命令行参数的任何值。使用此方法修改非浏览器进程的命令行参数时要小心,因为这可能会导致未定义的行为,包括崩溃。

virtual void OnRegisterCustomSchemes(CefRawPtr<CefSchemeRegistrar> registrar) {}

提供注册自定义方案的机会。不要保留对“注册器”对象的引用。在每个进程的主线程上调用此方法,并且在所有进程中注册的方案应该相同。

virtual CefRefPtr<CefResourceBundleHandler> GetResourceBundleHandler() {
    return nullptr;
}

返回资源包事件的处理程序。如果CefSettings.pack_loading_disabled为true,则必须返回处理程序。如果没有返回处理程序,将从包文件加载资源。此方法由浏览器调用,并在多个线程上渲染进程。

virtual CefRefPtr<CefBrowserProcessHandler> GetBrowserProcessHandler() {
    return nullptr;
}

返回浏览器进程特定功能的处理程序。在浏览器进程中的多个线程上调用此方法。

virtual CefRefPtr<CefRenderProcessHandler> GetRenderProcessHandler() {
    return nullptr;
}

返回特定于呈现过程的功能的处理程序。在渲染进程主线程上调用此方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顺其自然~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值