int CefExecuteProcess(const CefMainArgs& args, CefRefPtr 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 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 command_line) {}
提供了在CEF和Chromium处理之前查看和(或)修改命令行参数的机会。浏览器进程的process_type值将为空。不要保留对传递给此方法的CefCommandLine对象的引用。这个CefSettings.command_line_args_disabled的值可用于从空命令行对象开始。在调用此方法之前,将设置CefSettings中指定的、等同于命令行参数的任何值。使用此方法修改非浏览器进程的命令行参数时要小心,因为这可能会导致未定义的行为,包括崩溃。
virtual void OnRegisterCustomSchemes(CefRawPtr registrar) {}
提供注册自定义方案的机会。不要保留对“注册器”对象的引用。在每个进程的主线程上调用此方法,并且在所有进程中注册的方案应该相同。
virtual CefRefPtr GetResourceBundleHandler() {
return nullptr;
}
返回资源包事件的处理程序。如果CefSettings.pack_loading_disabled为true,则必须返回处理程序。如果没有返回处理程序,将从包文件加载资源。此方法由浏览器调用,并在多个线程上渲染进程。
virtual CefRefPtr GetBrowserProcessHandler() {
return nullptr;
}
返回浏览器进程特定功能的处理程序。在浏览器进程中的多个线程上调用此方法。
virtual CefRefPtr GetRenderProcessHandler() {
return nullptr;
}
返回特定于呈现过程的功能的处理程序。在渲染进程主线程上调用此方法。