| 285 | |
| 286 | static hook::Hook<decltype(&cef_execute_process)> CefExecuteProcess; |
| 287 | static int Hooked_CefExecuteProcess(const cef_main_args_t* args, cef_app_t* app, void* windows_sandbox_info) |
| 288 | { |
| 289 | // Hook RenderProcessHandler. |
| 290 | static auto Old_GetRenderProcessHandler = app->get_render_process_handler; |
| 291 | app->get_render_process_handler = [](cef_app_t* self) -> cef_render_process_handler_t* |
| 292 | { |
| 293 | // Get default handler. |
| 294 | auto handler = Old_GetRenderProcessHandler(self); |
| 295 | |
| 296 | // Hook OnContextCreated(). |
| 297 | OnContextCreated = handler->on_context_created; |
| 298 | handler->on_context_created = Hooked_OnContextCreated; |
| 299 | |
| 300 | // // Hook OnContextReleased(). |
| 301 | // OnContextReleased = handler->on_context_released; |
| 302 | // handler->on_context_released = Hooked_OnContextReleased; |
| 303 | |
| 304 | // Hook OnBrowserCreated(). |
| 305 | OnBrowserCreated = handler->on_browser_created; |
| 306 | handler->on_browser_created = Hooked_OnBrowserCreated; |
| 307 | |
| 308 | // // Hook OnProcessMessageReceived(). |
| 309 | // OnProcessMessageReceived = handler->on_process_message_received; |
| 310 | // handler->on_process_message_received = Hooked_OnProcessMessageReceived; |
| 311 | |
| 312 | return handler; |
| 313 | }; |
| 314 | |
| 315 | return CefExecuteProcess(args, app, windows_sandbox_info); |
| 316 | } |
| 317 | |
| 318 | void HookRendererProcess() |
| 319 | { |
nothing calls this directly
no outgoing calls
no test coverage detected