// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #if WITH_CEF3 #include "IWebBrowserResourceLoader.h" #include "CEFLibCefIncludes.h" FString ResourceTypeToString(const CefRequest::ResourceType& Type); class FWebBrowserSingleton; /** * Implements CEF Request handling for when a browser window is still being constructed */ class FCEFResourceContextHandler : public CefRequestContextHandler , public CefResourceRequestHandler { public: /** Default constructor. */ FCEFResourceContextHandler(FWebBrowserSingleton *InOwningSingleton); public: // CefResourceRequestHandler Interface virtual CefResourceRequestHandler::ReturnValue OnBeforeResourceLoad( CefRefPtr Browser, CefRefPtr Frame, CefRefPtr Request, #if CEF_VERSION_MAJOR < 128 CefRefPtr Callback) override; #else CefRefPtr Callback) override; #endif // 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: FOnBeforeContextResourceLoadDelegate& OnBeforeLoad() { return BeforeResourceLoadDelegate; } private: /** Delegate for handling resource load requests */ FOnBeforeContextResourceLoadDelegate BeforeResourceLoadDelegate; /** Singleton that owns this context handler, so we can lookup browser objects from it */ FWebBrowserSingleton* OwningSingleton; // Include the default reference counting implementation. IMPLEMENT_REFCOUNTING(FCEFResourceContextHandler); }; #endif