CEFInterfaceBrowserApp.h
2.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
// Engine/Source/Runtime/WebBrowser/Private/CEF/CEFBrowserApp.h
#pragma once
#include "CoreMinimal.h"
#include "Misc/ScopeLock.h"
#if WITH_CEF3
#if PLATFORM_WINDOWS
#include "Windows/WindowsHWrapper.h"
#include "Windows/AllowWindowsPlatformTypes.h"
#include "Windows/AllowWindowsPlatformAtomics.h"
#endif
#pragma push_macro("OVERRIDE")
#undef OVERRIDE // cef headers provide their own OVERRIDE macro
THIRD_PARTY_INCLUDES_START
#if PLATFORM_APPLE
PRAGMA_DISABLE_DEPRECATION_WARNINGS
#endif
#include "include/cef_app.h"
#if PLATFORM_APPLE
PRAGMA_ENABLE_DEPRECATION_WARNINGS
#endif
THIRD_PARTY_INCLUDES_END
#pragma pop_macro("OVERRIDE")
#if PLATFORM_WINDOWS
#include "Windows/HideWindowsPlatformAtomics.h"
#include "Windows/HideWindowsPlatformTypes.h"
#endif
/**
* Implements CEF App and other Process level interfaces
*/
class FCEFInterfaceBrowserApp : public CefApp,
public CefBrowserProcessHandler
{
public:
/**
* Default Constructor
*/
FCEFInterfaceBrowserApp(bool bInGPU);
/** A delegate this is invoked when an existing browser requests creation of a new browser window. */
DECLARE_DELEGATE_OneParam(FOnRenderProcessThreadCreated, CefRefPtr<CefListValue> /*ExtraInfo*/);
virtual FOnRenderProcessThreadCreated& OnRenderProcessThreadCreated()
{
return RenderProcessThreadCreatedDelegate;
}
/** Used to pump the CEF message loop whenever OnScheduleMessagePumpWork is triggered */
void TickMessagePump(float DeltaTime, bool bForce);
private:
// CefApp methods.
virtual CefRefPtr<CefBrowserProcessHandler> GetBrowserProcessHandler() override { return this; }
virtual void OnBeforeCommandLineProcessing(const CefString& ProcessType, CefRefPtr< CefCommandLine > CommandLine) override;
// CefBrowserProcessHandler methods:
virtual void OnBeforeChildProcessLaunch(CefRefPtr<CefCommandLine> CommandLine) override;
virtual void OnRenderProcessThreadCreated(CefRefPtr<CefListValue> ExtraInfo) override;
#if !PLATFORM_LINUX
virtual void OnScheduleMessagePumpWork(int64 delay_ms) override;
#endif
FOnRenderProcessThreadCreated RenderProcessThreadCreatedDelegate;
// Include the default reference counting implementation.
IMPLEMENT_REFCOUNTING(FCEFInterfaceBrowserApp);
// Lock for access MessagePumpCountdown
FCriticalSection MessagePumpCountdownCS;
// Countdown in milliseconds until CefDoMessageLoopWork is called. Updated by OnScheduleMessagePumpWork
int64 MessagePumpCountdown;
// WebGL toggle
bool bGPU;
};
#endif