remote/network/RemoteRequestHandler.h (53 lines of code) (raw):

#ifndef JCEF_REMOTEREQUESTHANDLER_H #define JCEF_REMOTEREQUESTHANDLER_H #include <set> #include "include/cef_request_handler.h" class MessageRoutersManager; class ServerHandlerContext; class RemoteBrowser; class RemoteRequestHandler : public CefRequestHandler { public: explicit RemoteRequestHandler(std::shared_ptr<ServerHandlerContext> ctx, std::shared_ptr<MessageRoutersManager> routersManager); virtual ~RemoteRequestHandler(); // Called on the UI thread before browser navigation. bool OnBeforeBrowse(CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame, CefRefPtr<CefRequest> request, bool user_gesture, bool is_redirect) override; // Called on the UI thread before OnBeforeBrowse in certain limited cases // where navigating a new or different browser might be desirable. bool OnOpenURLFromTab(CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame, const CefString& target_url, WindowOpenDisposition target_disposition, bool user_gesture) override; // Called on the browser process IO thread before a resource request is // initiated. CefRefPtr<CefResourceRequestHandler> GetResourceRequestHandler( CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame, CefRefPtr<CefRequest> request, bool is_navigation, bool is_download, const CefString& request_initiator, bool& disable_default_handling) override; // Called on the IO thread when the browser needs credentials from the user. // |origin_url| is the origin making this authentication request. bool GetAuthCredentials(CefRefPtr<CefBrowser> browser, const CefString& origin_url, bool isProxy, const CefString& host, int port, const CefString& realm, const CefString& scheme, CefRefPtr<CefAuthCallback> callback) override; // Called on the UI thread to handle requests for URLs with an invalid // SSL certificate. bool OnCertificateError(CefRefPtr<CefBrowser> browser, cef_errorcode_t cert_error, const CefString& request_url, CefRefPtr<CefSSLInfo> ssl_info, CefRefPtr<CefCallback> callback) override; // Called on the browser process UI thread when the render process // terminates unexpectedly. void OnRenderProcessTerminated(CefRefPtr<CefBrowser> browser, TerminationStatus status, int error_code, const CefString& error_string) override; private: const std::shared_ptr<ServerHandlerContext> myCtx; const std::shared_ptr<MessageRoutersManager> myRoutersManager; std::set<int> myCallbacks; std::set<int> myAuthCallbacks; IMPLEMENT_REFCOUNTING(RemoteRequestHandler); }; #endif // JCEF_REMOTEREQUESTHANDLER_H