GlobalCEFApp creates a TCustomCefApp which creates all the handlers internally :
- ICefResourceBundleHandler
- ICefBrowserProcessHandler
- ICefRenderProcessHandler
All the handler events are exposed as GlobalCEFApp events.
For ICefBrowserProcessHandler :
- GlobalCEFApp.OnContextInitialized
- GlobalCEFApp.OnBeforeChildProcessLaunch
- GlobalCEFApp.OnRenderProcessThreadCreated
- GlobalCEFApp.OnScheduleMessagePumpWork
- GlobalCEFApp.OnGetLocalizedString
- GlobalCEFApp.OnGetDataResource
- GlobalCEFApp.OnGetDataResourceForScale
- GlobalCEFApp.OnRenderThreadCreated
- GlobalCEFApp.OnWebKitInitialized
- GlobalCEFApp.OnBrowserCreated
- GlobalCEFApp.OnBrowserDestroyed
- GlobalCEFApp.OnContextCreated
- GlobalCEFApp.OnContextReleased
- GlobalCEFApp.OnUncaughtException
- GlobalCEFApp.OnFocusedNodeChanged
- GlobalCEFApp.OnProcessMessageReceived
For ICefRegisterCDMCallback :
- GlobalCEFApp.OnCDMRegistrationComplete
- GlobalCEFApp.OnLoadingStateChange
- GlobalCEFApp.OnLoadStart
- GlobalCEFApp.OnLoadEnd
- GlobalCEFApp.OnLoadError
If you want to reuse the code inside GlobalCEFApp.OnProcessMessageReceived I would suggest that you assign that event to a local procedure and then call your custom class from that procedure. For example :
Code: Select all
type
TCustomClass = class // It's just a regular TObject subclass
public
procedure OnProcessMessageReceived(const browser: ICefBrowser; sourceProcess: TCefProcessId; const message: ICefProcessMessage; var aHandled : boolean);
end;
procedure TCustomClass.OnProcessMessageReceived(const browser: ICefBrowser; sourceProcess: TCefProcessId; const message: ICefProcessMessage; var aHandled : boolean);
begin
//
end;
Code: Select all
initialization
MyCustomClass := TCustomClass.Create;
Code: Select all
procedure CreateGlobalCEFApp;
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.OnProcessMessageReceived := GlobalCEFApp_OnProcessMessageReceived;
end;
Code: Select all
procedure GlobalCEFApp_OnProcessMessageReceived(const browser : ICefBrowser;
sourceProcess : TCefProcessId;
const message : ICefProcessMessage;
var aHandled : boolean);
begin
MyCustomClass.OnProcessMessageReceived(browser, sourceProcess, message, aHandled);
end;