#pragma once #include #include "CEF/HumanApp.h" class HumanAppRenderer : public HumanApp , public CefRenderProcessHandler { public: class Delegate : public virtual CefBaseRefCounted { public: virtual void OnWebKitInitialized(CefRefPtr app) {} virtual void OnBrowserCreated(CefRefPtr app, CefRefPtr browser, CefRefPtr extra_info) {} virtual void OnBrowserDestroyed(CefRefPtr app, CefRefPtr browser) {} virtual CefRefPtr GetLoadHandler( CefRefPtr app) { return nullptr; } virtual void OnContextCreated(CefRefPtr app, CefRefPtr browser, CefRefPtr frame, CefRefPtr context) {} virtual void OnContextReleased(CefRefPtr app, CefRefPtr browser, CefRefPtr frame, CefRefPtr context) {} virtual void OnUncaughtException(CefRefPtr app, CefRefPtr browser, CefRefPtr frame, CefRefPtr context, CefRefPtr exception, CefRefPtr stackTrace) {} virtual void OnFocusedNodeChanged(CefRefPtr app, CefRefPtr browser, CefRefPtr frame, CefRefPtr node) {} virtual bool OnProcessMessageReceived( CefRefPtr app, CefRefPtr browser, CefRefPtr frame, CefProcessId source_process, CefRefPtr message) { return false; } }; using DelegateSet = std::set>; HumanAppRenderer(); private: static void CreateDelegates(DelegateSet& delegates); // CefApp methods. CefRefPtr GetRenderProcessHandler() override { return this; } // CefRenderProcessHandler methods. void OnWebKitInitialized() override; void OnBrowserCreated(CefRefPtr browser, CefRefPtr extra_info) override; void OnBrowserDestroyed(CefRefPtr browser) override; CefRefPtr GetLoadHandler() override; void OnContextCreated(CefRefPtr browser, CefRefPtr frame, CefRefPtr context) override; void OnContextReleased(CefRefPtr browser, CefRefPtr frame, CefRefPtr context) override; void OnUncaughtException(CefRefPtr browser, CefRefPtr frame, CefRefPtr context, CefRefPtr exception, CefRefPtr stackTrace) override; void OnFocusedNodeChanged(CefRefPtr browser, CefRefPtr frame, CefRefPtr node) override; bool OnProcessMessageReceived(CefRefPtr browser, CefRefPtr frame, CefProcessId source_process, CefRefPtr message) override; private: DelegateSet delegates_; IMPLEMENT_REFCOUNTING(HumanAppRenderer); DISALLOW_COPY_AND_ASSIGN(HumanAppRenderer); };