CEFInterfaceResourceContextHandler.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. // Engine/Source/Runtime/WebBrowser/Private/CEF/CEFInterfaceResourceContextHandler.h
  2. #pragma once
  3. #include "CoreMinimal.h"
  4. #if WITH_CEF3
  5. #include "IWebInterfaceBrowserResourceLoader.h"
  6. #include "CEFInterfaceLibCefIncludes.h"
  7. FString _ResourceTypeToString(const CefRequest::ResourceType& Type);
  8. class FWebInterfaceBrowserSingleton;
  9. /**
  10. * Implements CEF Request handling for when a browser window is still being constructed
  11. */
  12. class FCEFInterfaceResourceContextHandler :
  13. public CefRequestContextHandler
  14. , public CefResourceRequestHandler
  15. {
  16. public:
  17. /** Default constructor. */
  18. FCEFInterfaceResourceContextHandler(FWebInterfaceBrowserSingleton *InOwningSingleton);
  19. public:
  20. // CefResourceRequestHandler Interface
  21. virtual CefResourceRequestHandler::ReturnValue OnBeforeResourceLoad(
  22. CefRefPtr<CefBrowser> Browser,
  23. CefRefPtr<CefFrame> Frame,
  24. CefRefPtr<CefRequest> Request,
  25. CefRefPtr<CefRequestCallback> Callback) override;
  26. // CefRequestContextHandler Interface
  27. virtual CefRefPtr<CefResourceRequestHandler> GetResourceRequestHandler(
  28. CefRefPtr<CefBrowser> browser,
  29. CefRefPtr<CefFrame> frame,
  30. CefRefPtr<CefRequest> request,
  31. bool is_navigation,
  32. bool is_download,
  33. const CefString& request_initiator,
  34. bool& disable_default_handling) override;
  35. public:
  36. FOnBeforeInterfaceContextResourceLoadDelegate& OnBeforeLoad()
  37. {
  38. return BeforeResourceLoadDelegate;
  39. }
  40. private:
  41. /** Delegate for handling resource load requests */
  42. FOnBeforeInterfaceContextResourceLoadDelegate BeforeResourceLoadDelegate;
  43. /** Singleton that owns this context handler, so we can lookup browser objects from it */
  44. FWebInterfaceBrowserSingleton* OwningSingleton;
  45. // Include the default reference counting implementation.
  46. IMPLEMENT_REFCOUNTING(FCEFInterfaceResourceContextHandler);
  47. };
  48. #endif