UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
CEFBrowserHandler.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6
7#if WITH_CEF3
8
9
10#include "CEFLibCefIncludes.h"
11
12
13#include "IWebBrowserWindow.h"
14
15#endif
16
18struct Rect;
21
22#if WITH_CEF3
23
28 : public CefClient
29 , public CefDisplayHandler
30 , public CefLifeSpanHandler
31 , public CefLoadHandler
32 , public CefRenderHandler
33 , public CefRequestHandler
34 , public CefKeyboardHandler
35 , public CefJSDialogHandler
37 , public CefDragHandler
41 , public CefDialogHandler
42{
43public:
44
47
48public:
49
56
63 {
65 }
66
67public:
68
69 // CefClient Interface
70
72 {
73 return this;
74 }
75
77 {
78 return this;
79 }
80
82 {
83 return this;
84 }
85
87 {
88 return this;
89 }
90
92 {
93 return this;
94 }
95
97 {
98 return this;
99 }
100
102 {
103 return this;
104 }
105
107 {
108 return this;
109 }
110
112 {
113 return this;
114 }
115
117 {
118 return this;
119 }
120
124 CefRefPtr<CefRequest> Request) override;
125
129 CefRefPtr<CefProcessMessage> Message) override;
130
131public:
132
133 // CefDisplayHandler Interface
134
135 virtual void OnTitleChange(CefRefPtr<CefBrowser> Browser, const CefString& Title) override;
137 virtual bool OnTooltip(CefRefPtr<CefBrowser> Browser, CefString& Text) override;
138 virtual bool OnConsoleMessage(
141 const CefString& Message,
142 const CefString& Source,
143 int Line) override;
144
145public:
146
147 // CefLifeSpanHandler Interface
148
149 virtual void OnAfterCreated(CefRefPtr<CefBrowser> Browser) override;
150 virtual bool DoClose(CefRefPtr<CefBrowser> Browser) override;
151 virtual void OnBeforeClose(CefRefPtr<CefBrowser> Browser) override;
152
153 virtual bool OnBeforePopup(CefRefPtr<CefBrowser> Browser,
155 const CefString& Target_Url,
157 CefLifeSpanHandler::WindowOpenDisposition /* Target_Disposition */,
158 bool /* User_Gesture */,
162 CefBrowserSettings& Settings,
164 bool* no_javascript_access) override
165 {
167 }
168
169 virtual bool OnBeforePopup(CefRefPtr<CefBrowser> Browser,
171 const CefString& Target_Url,
176 CefBrowserSettings& Settings,
177 bool* no_javascript_access) ;
178
179public:
180
181 // CefLoadHandler Interface
182
183 virtual void OnLoadError(CefRefPtr<CefBrowser> Browser,
185 CefLoadHandler::ErrorCode InErrorCode,
186 const CefString& ErrorText,
187 const CefString& FailedUrl) override;
188
189 virtual void OnLoadingStateChange(
191 bool isLoading,
192 bool canGoBack,
193 bool canGoForward) override;
194
195 virtual void OnLoadStart(
198 TransitionType CefTransitionType) override;
199
200public:
201
202 // CefRenderHandler Interface
204 virtual void GetViewRect(CefRefPtr<CefBrowser> Browser, CefRect& Rect) override;
205 virtual void OnPaint(CefRefPtr<CefBrowser> Browser,
206 PaintElementType Type,
207 const RectList& DirtyRects,
208 const void* Buffer,
209 int Width, int Height) override;
211 PaintElementType Type,
212 const RectList& DirtyRects,
213#if CEF_VERSION_MAJOR < 128
214 void* SharedHandle) override;
215#else
216 const CefAcceleratedPaintInfo& SharedHandle) override;
217#endif
218 virtual void OnPopupShow(CefRefPtr<CefBrowser> Browser, bool bShow) override;
219 virtual void OnPopupSize(CefRefPtr<CefBrowser> Browser, const CefRect& Rect) override;
221 // CefDisplayHandler interface
223 CefCursorHandle cursor,
225 const CefCursorInfo& custom_cursor_info) override;
226#if !PLATFORM_LINUX
227 virtual void OnImeCompositionRangeChanged(
229 const CefRange& SelectionRange,
230 const CefRenderHandler::RectList& CharacterBounds) override;
231#endif
232
233public:
234
235 // CefRequestHandler Interface
236
237 virtual CefResourceRequestHandler::ReturnValue OnBeforeResourceLoad(
240 CefRefPtr<CefRequest> Request,
241#if CEF_VERSION_MAJOR < 128
242 CefRefPtr<CefRequestCallback> Callback) override;
243#else
244 CefRefPtr<CefCallback> Callback) override;
245#endif
246 virtual void OnResourceLoadComplete(CefRefPtr<CefBrowser> Browser,
248 CefRefPtr<CefRequest> Request,
250 URLRequestStatus Status,
251#if CEF_VERSION_MAJOR < 128
253#else
255#endif
258 CefRefPtr<CefRequest> request,
260 CefString& new_url) override;
262#if CEF_VERSION_MAJOR < 128
263 TerminationStatus Status) override;
264#else
265 TerminationStatus Status,
266 int error_code,
267 const CefString& error_string) override;
268#endif
269 virtual bool OnBeforeBrowse(CefRefPtr<CefBrowser> Browser,
271 CefRefPtr<CefRequest> Request,
272 bool user_gesture,
273 bool IsRedirect) override;
277 CefRefPtr<CefRequest> Request ) override;
278 virtual bool OnCertificateError(
281 const CefString& RequestUrl,
283#if CEF_VERSION_MAJOR < 128
284 CefRefPtr<CefRequestCallback> Callback) override;
285#else
286 CefRefPtr<CefCallback> Callback) override;
287#endif
288
292 CefRefPtr<CefRequest> request,
293 bool is_navigation,
294 bool is_download,
296 bool& disable_default_handling) override;
297
298public:
299 // CefKeyboardHandler interface
301 const CefKeyEvent& Event,
302 CefEventHandle OsEvent) override;
303
304public:
305 // CefCookieAccessFilter interface
308 CefRefPtr<CefRequest> Request,
310 const CefCookie& Cookie) override;
311
314 CefRefPtr<CefRequest> Request,
315 const CefCookie& Cookie) override;
316
317public:
318 // CefJSDialogHandler interface
319
320 virtual bool OnJSDialog(
322 const CefString& OriginUrl,
324 const CefString& MessageText,
327 bool& OutSuppressMessage) override;
328
329 virtual bool OnBeforeUnloadDialog(CefRefPtr<CefBrowser> Browser, const CefString& MessageText, bool IsReload, CefRefPtr<CefJSDialogCallback> Callback) override;
330
331 virtual void OnResetDialogState(CefRefPtr<CefBrowser> Browser) override;
332
333public:
334 // CefContextMenuHandler
335
340
341public:
342 // CefDragHandler interface
343
344 virtual void OnDraggableRegionsChanged(
346 CefRefPtr<CefFrame> frame,
347 const std::vector<CefDraggableRegion>& Regions) override;
348
349public:
350 // CefDialogHandler interface
351
353 FileDialogMode Mode,
354 const CefString& Title,
356 const std::vector<CefString>& AcceptFilters,
357#if CEF_VERSION_MAJOR < 128
359#else
360 const std::vector<CefString>& AcceptExtensions,
361 const std::vector<CefString>& AcceptDescriptions,
362#endif
363 CefRefPtr<CefFileDialogCallback> Callback) override;
364
365public:
366
367 IWebBrowserWindow::FOnBeforePopupDelegate& OnBeforePopup()
368 {
369 return BeforePopupDelegate;
370 }
371
372 IWebBrowserWindow::FOnCreateWindow& OnCreateWindow()
373 {
374 return CreateWindowDelegate;
375 }
376
377 typedef TMap<FString, FString> FRequestHeaders;
378 DECLARE_DELEGATE_FourParams(FOnBeforeResourceLoadDelegate, const CefString& /*URL*/, CefRequest::ResourceType /*Type*/, FRequestHeaders& /*AdditionalHeaders*/, const bool /*AllowUserCredentials*/);
379 FOnBeforeResourceLoadDelegate& OnBeforeResourceLoad()
380 {
381 return BeforeResourceLoadDelegate;
382 }
383
384 DECLARE_DELEGATE_FourParams(FOnResourceLoadCompleteDelegate, const CefString& /*URL*/, CefRequest::ResourceType /*Type*/, CefResourceRequestHandler::URLRequestStatus /*Status*/, int64 /*ContentLength*/);
385 FOnResourceLoadCompleteDelegate& OnResourceLoadComplete()
386 {
387 return ResourceLoadCompleteDelegate;
388 }
389
390 DECLARE_DELEGATE_FiveParams(FOnConsoleMessageDelegate, CefRefPtr<CefBrowser> /*Browser*/, cef_log_severity_t /*level*/, const CefString& /*Message*/, const CefString& /*Source*/, int32 /*Line*/);
391 FOnConsoleMessageDelegate& OnConsoleMessage()
392 {
393 return ConsoleMessageDelegate;
394 }
395
396 bool URLRequestAllowsCredentials(const FString& URL) const;
397
398private:
399
401
402 bool bUseTransparency;
403 bool bAllowAllCookies;
404 bool bInterceptLoadRequests;
405
406 TArray<FString> AltRetryDomains;
408
411
414
416 IWebBrowserWindow::FOnBeforePopupDelegate BeforePopupDelegate;
417
419 IWebBrowserWindow::FOnCreateWindow CreateWindowDelegate;
420
422 FOnBeforeResourceLoadDelegate BeforeResourceLoadDelegate;
423
425 FOnResourceLoadCompleteDelegate ResourceLoadCompleteDelegate;
426
428 FOnConsoleMessageDelegate ConsoleMessageDelegate;
429
432
435
438
439 // Include the default reference counting implementation.
441};
442
443#endif
GLenum GLuint GLint level
Definition AndroidOpenGLFunctions.h:46
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_DELEGATE_FiveParams(DelegateName, Param1Type, Param2Type, Param3Type, Param4Type, Param5Type)
Definition DelegateCombinations.h:84
#define DECLARE_DELEGATE_FourParams(DelegateName, Param1Type, Param2Type, Param3Type, Param4Type)
Definition DelegateCombinations.h:75
auto Response
Definition ExternalRpcRegistry.cpp:598
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition IWebBrowserWindow.h:85
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition SharedPointer.h:1295
Definition LinuxPlatformSplash.cpp:43