program SubProcess; uses uCEFApplicationCore, uCEFConstants, uCEFv8Value, uCEFInterfaces; const IMAGE_FILE_LARGE_ADDRESS_AWARE = $0020; // CEF needs to set the LARGEADDRESSAWARE ($20) flag which allows 32-bit processes to use up to 3GB of RAM. {$IFDEF WIN32}{$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE}{$ENDIF} procedure GlobalCEFApp_OnContextCreated(const browser: ICefBrowser; const frame: ICefFrame; const context: ICefv8Context); var TempValue : ICEFv8Value; begin // This is the first JS Window Binding example in the "JavaScript Integration" wiki page at // https://bitbucket.org/chromiumembedded/cef/wiki/JavaScriptIntegration.md TempValue := TCefv8ValueRef.NewString('My Value!'); context.Global.SetValueByKey('myval', TempValue, V8_PROPERTY_ATTRIBUTE_NONE); end; begin GlobalCEFApp := TCefApplicationCore.Create; GlobalCEFApp.OnContextCreated := GlobalCEFApp_OnContextCreated; // The main process and the subprocess *MUST* have the same FrameworkDirPath, ResourcesDirPath, // LocalesDirPath, cache, cookies and UserDataPath paths // The demos are compiled into the BIN directory. Make sure SubProcess.exe and JSSimpleWindowBinding.exe are in that // directory or this demo won't work. // In case you want to use custom directories for the CEF3 binaries, cache, cookies and user data. { GlobalCEFApp.FrameworkDirPath := 'cef'; GlobalCEFApp.ResourcesDirPath := 'cef'; GlobalCEFApp.LocalesDirPath := 'cef\locales'; GlobalCEFApp.cache := 'cef\cache'; GlobalCEFApp.UserDataPath := 'cef\User Data'; } GlobalCEFApp.StartSubProcess; GlobalCEFApp.Free; GlobalCEFApp := nil; end.