Files
UnrealEngine/Engine/Source/Runtime/WebBrowser/Private/CEF/CEFResourceContextHandler.h
2025-05-18 13:04:45 +08:00

72 lines
1.7 KiB
C++

// 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<CefBrowser> Browser,
CefRefPtr<CefFrame> Frame,
CefRefPtr<CefRequest> Request,
#if CEF_VERSION_MAJOR < 128
CefRefPtr<CefRequestCallback> Callback) override;
#else
CefRefPtr<CefCallback> Callback) override;
#endif
// CefRequestContextHandler Interface
virtual 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;
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