// Engine/Source/Runtime/WebBrowser/Private/CEF/CEFInterfaceResourceContextHandler.h #pragma once #include "CoreMinimal.h" #if WITH_CEF3 #include "IWebInterfaceBrowserResourceLoader.h" #include "CEFInterfaceLibCefIncludes.h" FString _ResourceTypeToString(const CefRequest::ResourceType& Type); class FWebInterfaceBrowserSingleton; /** * Implements CEF Request handling for when a browser window is still being constructed */ class FCEFInterfaceResourceContextHandler : public CefRequestContextHandler , public CefResourceRequestHandler { public: /** Default constructor. */ FCEFInterfaceResourceContextHandler(FWebInterfaceBrowserSingleton *InOwningSingleton); public: // CefResourceRequestHandler Interface virtual CefResourceRequestHandler::ReturnValue OnBeforeResourceLoad( CefRefPtr Browser, CefRefPtr Frame, CefRefPtr Request, CefRefPtr Callback) override; // CefRequestContextHandler Interface virtual CefRefPtr GetResourceRequestHandler( CefRefPtr browser, CefRefPtr frame, CefRefPtr request, bool is_navigation, bool is_download, const CefString& request_initiator, bool& disable_default_handling) override; public: FOnBeforeInterfaceContextResourceLoadDelegate& OnBeforeLoad() { return BeforeResourceLoadDelegate; } private: /** Delegate for handling resource load requests */ FOnBeforeInterfaceContextResourceLoadDelegate BeforeResourceLoadDelegate; /** Singleton that owns this context handler, so we can lookup browser objects from it */ FWebInterfaceBrowserSingleton* OwningSingleton; // Include the default reference counting implementation. IMPLEMENT_REFCOUNTING(FCEFInterfaceResourceContextHandler); }; #endif