GithubHelp home page GithubHelp logo

fpcef3's Introduction

fpCEF3

Chromium Embedded Framework for Free Pascal

How to get started

  • Install cef3.lpk into Lazarus
  • Download CEF3 (standard or minimal distribution). Make sure to use the correct CEF3 version (see the changelog / release tag); other versions (older or newer) usually don't work and are not recommended
  • Create a new project or use one of the projects in the Examples folder. LCLSimple is a good starting point
  • Read the following section on how to correctly set up the file layout

Important:
Most examples use build modes. Make sure to select the correct one, otherwise compilation will fail.

CEF setup

macOS

Follow the instructions on the wiki.

Windows and Linux

A CEF package contains

  • the CEF library itself and related binaries in the Release or Debug folder and
  • resources in the Resources folder.

By default CEF expects the library and binaries in PATH (Windows) or LD_LIBRARY_PATH (Linux) and the the resources in the same folder as the executable. A custom path for the library can be set using CefLibraryDirPath. The path for the resources can be changed by setting CefResourcesDirPath and CefLocalesDirPath. However, some files cannot be moved:

Windows

  • chrome_elf.dll has to be in PATH or the same folder as the executable
  • icudtl.dat has to be in PATH

Linux

  • icudtl.dat and *_blob.bin have to be in the same folder as the executable

Important:
Make sure to include cthreads as the first unit in your main program.
If you build CEF3 yourself make sure tcmalloc is disabled.

Hints

Don't use --single-process or change CefSingleProcess to True. This mode is not officially supported by Chromium.

If the browser goes "blank" (e.g. when loading a page), the render process crashed. See Debugging on how to debug the render process. The render process restarts automatically on the next page request.

SubProcess

If CEF is initialized a subprocess is started. By default a second instance of the main program is used as the subprocess. Nevertheless, the preferred way is to define an own (minimal) subprocess executable. In fpCEF3 this can be done by setting CefBrowserSubprocessPath to the path of the subprocess executable. In the LCLSimple example this setting can be found in the Initialization section at the end of main.pas.

A minimal subprocess can be found in the folder /Examples/SubProcess. The subprocess also needs the CEF3 library and resources in its path, so it is recommended to put the subprocess executable in the same folder as the main exe.
More details can be found here.

Debugging

Sometimes it is useful to debug the subprocesses spawned by cef. On Linux this can be done by adding

--renderer-cmd-prefix='xterm -title renderer -e gdb --args'

to the command line.
Further details can be found here.

Supported platforms

  • Windows
  • Linux (Gtk2 or Qt4)
  • macOS (Cocoa)

Documentation

You can find comments and usage information in

  • cef3lib.pas / cef3api.pas
  • the example projects in the Examples folder
  • the official api docs here
  • the official cefclient example program here

Links:

Donate

fpcef3's People

Contributors

dliw avatar klesh- avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fpcef3's Issues

make examples execute in my environment

Following code is needed to make examples execute in my environment.

Code:
//Add to TMainform.FormCreate
CefResourcesDirPath:='Resources';
CefLocalesDirPath:='Resources\locales';
CefInitDefault;

My Environment:
Windows7 32bit
Lazarus 1.4.4
CEF 3.1750
I am using fpCEF for CEF 3.1750. Because new for 3.2454 can not run in my environment. ;-(

Thank you so much for your great work.

tcmalloc is now disabled in official builds

Hi dliw,

Thanks for you great project. Just giving you a heads up that tcmalloc is now disabled in official linux builds - https://bitbucket.org/chromiumembedded/cef/wiki/AutomatedBuildSetup#markdown-header-linux-configuration. Official builds that disable tcmalloc are located at http://opensource.spotify.com/cefbuilds/index.html.

Since your readme.md mentions otherwise I'd figure I'd let you know about the recent change. Wasn't sure how else to reach you so hope you don't mind me opening an issue.

EOSError: The application seems to not load CefLib

EOSError: The application seems to not load CefLib

Ubuntu 14.04 64
Lazarus 1.2.4 / FPC 2.6.4
fpCEF3: master - uptodate
CEF3 3.1

function CefLoadLibrary: Boolean;
begin
{$IFDEF DEBUG}
Debugln('CefLoadLibrary');
{$ENDIF}

If LibHandle = 0 then
begin
Set8087CW(Get8087CW or $3F); // deactivate FPU exception
SetExceptionMask([exInvalidOp, exDenormalized, exZeroDivide, exOverflow, exUnderflow, exPrecision]);

LibHandle := LoadLibrary(PChar(CefLibrary));
If LibHandle = 0 then RaiseLastOsError;   

...

[FORMS.PP] ExceptionOccurred
Sender=EOSError
Exception=An operating system call failed.
Stack trace:
$00000000004B13CF
$00000000004B12C8
$0000000000772367 line 216 of ../cef3lib.pas
$000000000077227C line 194 of ../cef3lib.pas
$0000000000773A0E line 609 of ../cef3lib.pas
$00000000007749DB line 573 of cef3lcl.pas
$0000000000611716 line 7692 of include/wincontrol.inc
$00000000006107AD line 7384 of include/wincontrol.inc
$000000000044642D line 23 of include/scrollingwincontrol.inc
$000000000044F632 line 2586 of include/customform.inc
$0000000000451121 line 3045 of include/customform.inc
$000000000060EA14 line 7249 of include/wincontrol.inc
$0000000000611716 line 7692 of include/wincontrol.inc
$000000000045CD87 line 2184 of include/application.inc
$000000000041E084 line 18 of simple.lpr
TApplication.HandleException An operating system call failed.
Stack trace:
$00000000004B13CF
$00000000004B12C8
$0000000000772367 line 216 of ../cef3lib.pas
$000000000077227C line 194 of ../cef3lib.pas
$0000000000773A0E line 609 of ../cef3lib.pas
$00000000007749DB line 573 of cef3lcl.pas
$0000000000611716 line 7692 of include/wincontrol.inc
$00000000006107AD line 7384 of include/wincontrol.inc
$000000000044642D line 23 of include/scrollingwincontrol.inc
$000000000044F632 line 2586 of include/customform.inc
$0000000000451121 line 3045 of include/customform.inc
$000000000060EA14 line 7249 of include/wincontrol.inc
$0000000000611716 line 7692 of include/wincontrol.inc
$000000000045CD87 line 2184 of include/application.inc
$000000000041E084 line 18 of simple.lpr

Unknown property: "TabOrder"

Hi.

I've tried to compile this package with Lazarus 1.6.2 and fpc 3.0
The following error occurs: Unknown property: "TabOrder".
capture
Please help.
Thank you.

Build 1916

Please update to build 1916. Also is UNICODE switch supported?

Can't compile package

Hi,
Try to install lpk, but got an error message on compiling:
"cef3lcl.pas(615,15) Error: Illegal type conversion: "TMessage" to "TWMKey"

Any idea?

Alex
win7/64
lazarus 1.0.14
fpc 2.6.2

Why there was raised an issue about the licensing of WACEF?

waspace/wacef is most useful delphi cef3 framework, it helps me a lot at my work than other you. I don't see any about you guys' license of your free pascal project. You have no evidence to demand they delete the most useful cef3 project!

help!

Where do I download the version of the binary file?

Chromium component open new window and don't display any thing !

Hi
I using fpCef3 in ubuntu and FPC 3.1.1.
when running application with chromium component,new window open and don't show anything and when close application raise below exception.

Project CefClient raised exception class 'External: SIGABRT'.

In file '../nptl/sysdeps/unix/sysv/linux/raise.c' at line 56

thank you.

fpCef3+Linux32+CEF binary with malloc disabled?

Hello!
I'm try to use fpCef3 in Linux Mint 17.3 (x32), but I cannot find compiled binaries with malloc disabled for version 3.2556.
I download sources for version 3.2556 and try to compile it using Code:Blocks IDE (compiling was success), but I don't know how to disable malloc. Can You help me to do it, please?
P.S. Sorry for my English

FPCEF3 printer dialog not showing on Debian 8 Linux

When i try to print the printer dialog did not appear. In Windows it is working fine.

All Linux programs are able to print, so is not a issue with cups i think.

No error messages, even if i run the app from a terminal.

Can't use on TPageControl with Qt widgetset

Hi,

As in title. I can drop TChromium on pages and it work fine at design time but when run program then all TChromium instances have main window as parent

Lazarus 1.6.2, Qt widgetset
FPC 2.6.4
Linux Mint 18.1, KDE Edition, Plasma 5
Chromium 3.2743 "minimal" edition
fpCEF3 master (but same bug on tag 3.2743)

Regards

Memory allocation bug when linking to debug version of the library

When I link to Debug version of libcef.so (and libffmpegsumo.so), LCLSimple example outputs:

$ ./simple
[0105/221603:ERROR:audio_manager_pulse.cc(250)] Failed to connect to the context. Error: Connection refused
memory allocation bug: object at 0x1640ec0 has never been allocated
Segmentation fault (core dumped)
[0105/221604:FATAL:sys_info_linux.cc(47)] Check failed: limit > 0.
[0x7f963229d4dc] base::debug::StackTrace::StackTrace()
[0x7f96323051ef] logging::LogMessage::~LogMessage()
[0x7f96323b9baf](anonymous namespace)::MaxSharedMemorySize()
[0x7f96323ba321] base::internal::LazySysInfoValue<>::LazySysInfoValue()
[0x7f96323ba2e4] base::DefaultLazyInstanceTraits<>::New()
[0x7f96323ba102] base::internal::LeakyLazyInstanceTraits<>::New()
[0x7f96323ba073] base::LazyInstance<>::Pointer()
[0x7f96323b9f5a] base::LazyInstance<>::Get()
[0x7f96323b9c14] base::SysInfo::MaxSharedMemorySize()
[0x7f9632b4be24] content::PreSandboxInit()
[0x7f9632b4bf15] content::EnterSuidSandbox()
[0x7f9632b4c55f] content::ZygoteMain()
[0x7f963708e87d] content::RunZygote()
[0x7f963708ed4f] content::RunNamedProcessTypeMain()
[0x7f963708fe85] content::ContentMainRunnerImpl::Run()
[0x7f963708e11b] content::ContentMain()
[0x7f96320b50df] CefExecuteProcess()
[0x7f9631fdf381] cef_execute_process
[0x000000724732] CEF3LIB_$$_CEFINITIALIZE$crc97D6A61A

memory allocation bug: object at 0x210fed0 has never been allocated

Interception mouse events in Lazarus

Hi,

The Object Inspector contains onKeyEvent.

Do you plan to make handling mouse events (onMouseEvent)?

I did not find examples of intercepting mouse events for TChromium
(Interested five buttons - 3 standard and 2 side).

Best Regards,
Aleksandr

JavaScript window.close() method may close the application

Amendment:
it does not work only for the start page as soon as the application starts.
After change the URL, this option works correctly.
This led me astray, sorry.
Please delete this issue


Setting "STATE_DISABLED" for JavascriptCloseWindows option -
it works when the JS-code is executed through ExecuteJavaScript(),
but does not work when window.close() is contained in the source code of web page.

When TChromium component is contained on the main form,
the window.close() method may close the Lazarus application.

I can perform JS-method window.close() in the code of any web page,
in an attempt to close the Lazarus application,
or to try to cause problems for any frames Chromium.

How can I understand that the window (frame) is closed by the user?
Only through the confirmation dialog when processing a OnClose event?

Lazarus IDE v1.6.0, fpc 3.0.0, fpCEF3 3.2526, win7/64.

Regards,
Aleksandr.

P.S. Sorry for my English

SIGSEGV on Linux

Hi,

I followed all instructions (cthread, files path etc), LD_LIBRARY_PATH point to my project dir, LibHandle<>0 but still at line:

ErrCode := cef_initialize(@Args, @settings, CefGetData(app), nil);

...getting:

Project project1 raised exception class 'External: SIGSEGV'.

In file '../sysdeps/x86_64/multiarch/memcpy-avx-unaligned.S' at line 245

My init code is:

procedure TForm1.FormCreate(Sender: TObject);
var
  PrjPath: ustring;
  Lang, FallbackLang: string;
begin
  PrjPath := UTF8Decode(GetCurrentDir + PathDelim);
  CefLocalesDirPath := PrjPath + 'locales';
  GetLanguageIDs(Lang, FallbackLang);
  CefLocale := UTF8Decode(FallbackLang);
end;  

Linux Mint 18.1 64bit, KDE edition
Kernel 4.8.0-36 generic
Lazarus 1.6.2
FPC 2.6.4
02/16/2017 - CEF 3.2924.1570.g558741c / Chromium 56.0.2924.76 "standard" edition but also tested with "minimal" - same error

Anyone can confirm this bug?

Note: Simple C client demo is working fine

Regards

Can not use cef_string_list_append()

Simple code, please see below, ended with sigsegv error. (fpCEF3 - 3.1750, CEF3 3.1750.1805,win7 64, CodeTyphon 4.8 r44546 FPC 2.7.1 i386-win32-win32/win64)

Stack:
0 libcef!cef_version_info at :0
1 libcef!cef_string_list_append at :0
2 Button9Click(0x1aed978, 0x1adef88) at main.pas:217

Code:
var
t: TCefString;
list : TCefStringList;
begin
t := CefString('Title');
list := cef_string_list_alloc;
cef_string_list_append(list, @t); // line 217
end

Thanks for help
zbyna

Add off-screen support

This is an awesome project! May I suggest to add off screen support (for Windows primarily, just my personal case) like what dcef3 does? Thanks.

PS, I noticed you guys have discussed this in another issue, but this is an feature request, so I opening this as a separated one :)

Component is jumping to a new window only in Linux

I am having a issue with fpCEF3.

In windows i can create a project fine and add the component Chromium pointed to https://www.google.com.br, but in Linux (Debian 8), when i try to do that, the component detaches from the main window, the loading of google occurs fine but in a another strange window.

I am going crazy because there is no errors at all.

What i do:
1- Create a new project from zero.
2- Copy resources and release to the root of the project.
3- Add a Chromium component to the main form.
4- Set default url to https://www.google.com.br in the component properties.

What happen if a compile and run it on:
1- Windows: It opens only a window with chromium component loading google in the main form.

2- Linux - It opens 2 windows, the main form , and a new additional window, loading google fine but in a new detached window.

And the strangest thing is that the LCLsimple example, works in the same window **but it broken openning a new window, when i remove the simpletext component from the example app. (yes! the 'Url:' text)

Maybe is something related to the lazarus version?

Lazarus 1.6 FPCEF for CEF 2743 Debian 8 64 bits operating system, graphical environment: Mate

CEF 3.2454.1344 not supported

Hi!
I've tried to run my application with Lazarus 2.6, fpc 3.0 on Windows 7 x64 using CEF 3.2454.1344 (Win64, Release) but it raised a "Unsupported CEF library version" exception.

CEF 3.2171.1979 not supported

Hi
I try to run GT2Minimal Example with lazarus 1.4.0 and freepascal 2.6.4 on ubuntu 14.04 and cef library version 3.2171.1979 but after application run a "Unsupported CEF library version " exception raised.

Plugins

Plugins not works, SIGSEGV.Here is my code:
var
cefplugins: TCefString;
...
Finalize(cefplugins);
cefplugins.str := PChar16('/plugin/');
cefplugins.length := sizeof(cefplugins.str);
cef_add_web_plugin_directory(@cefplugins);
cef_refresh_web_plugins;

WebPluginPath

I try use functions from cef3lib but i take SIGSEGV.Here is my code:
CefAddWebPluginPath(ExtractFilePath(Application.ExeName) + 'plugins/');

Assembler window: libcef!GetHandleVerifier

Good day,
fpCEF3 worked fine a few months ago (Linux + Windows 8.1), Lazarus 1.6
What have changed is Lazarus: v1.6.2

When running any app using fpCEF3, including the examples, I always get the assembler window with 'libcef!GetHandleVerifier'. So I downloaded the last version of fpCEF3, and cef_binary_3.2743.1449.g90ba67d_windows32 : same issue!
(screenshot attached)

Do you know how to solve this one? Thaks in advance
20170131-fpcef_bug_assembler_window

Wrong types in cef3lib.pas

If {$DEFINE CEF_STRING_TYPE_UTF8} enabled, and {.$DEFINE CEF_STRING_TYPE_UTF16} disabled >>
some errors prohibit to re-compile.
Like:
cef3lib.pas(390,1) SHOULD BE:
procedure _free_string(str: PCefChar); cconv;

... otherwise this error appears:
cef3lib.pas(399,19) Error: Incompatible types: got "<address of procedure(PWideChar);StdCall>" expected "TCefStringUtf8.<procedure variable type of procedure(PChar);StdCall>"
Result^.dtor := @_free_string;

Download dialog does not work in Linux

The Download dialog does not work in Linux. If you click in a file, for example a .doc file, in Windows a dialog will open using fpcef, but in Linux, nothing happen, and there is no errors.

There is some way to get this working?

Chromium behavior when restoring Application window

Hello,
I'm testing CEF 3.2526 in Lazarus 1.6 on Windows XP 32-bit. I think I encounter quite an annoying behavior of fpCEF3 which happens when restoring App Window from taskbar, after pressing 'Show Desktop'. When restoring, and the App Window shows up, there I notice the Chromium content seems to be rendered multiple times (more than once). May be due to WM_RESIZE processing?

This behavior neither occur with any Delphi CEF3.* nor with Linux version of Lazarus 1.6 (with the same 3,2526 source). For simple reproduce, please browse using fpCEF3 to http://www.yahoo.com then click 'Show Desktop' to hide all windows, and then try restore App Window from taskbar. You should see what I said above.

If that's a bug, I'm really hoping this can be fixed. Thank you very much in advance.

Can't get it to work on windows

I followed the steps but I can't get the component to work. First it complains about missing properties like taborder. That line is made to comment for some reason so easy to fix. then it complains about missing backgroundcolor, adding a dummy fixes this issue. Than the debugger breaks on every cef_time_to_timet, and finally an empty browser screen appears, but it does not load any url. Not sure if it's a bug or not, but since this is my n-th attempt to get this working for various versions I still don't get it what I'm doing wrong or not. I loaded the 32 bits version and targetted the stuf to 32 bits.

I also redid the full installation and changed widgetset to w32 which solved the property issue. But I still can't get a webpage to show.

EOSError Exception

When starting the application, only when having Chromium control on Lazarus Form (GTK2).. (the only thing on the form) I'm running Ubuntu 15.10 (64bit), all other controls work.. Compiled libcef (a beast!) without tcmalloc, quick trace:

$00000000004B6CCD line 449 of ../objpas/sysutils/sysutils.inc
$00000000004B6BE1 line 438 of ../objpas/sysutils/sysutils.inc
$0000000000750261
$000000000060A177 line 7795 of include/wincontrol.inc
$00000000006095EA line 7484 of include/wincontrol.inc
$00000000004479B7 line 23 of include/scrollingwincontrol.inc
$000000000044FFDD line 2589 of include/customform.inc
$00000000004515C6 line 3055 of include/customform.inc
$0000000000608A2E line 7349 of include/wincontrol.inc
$000000000060A177 line 7795 of include/wincontrol.inc
$000000000045B2B2 line 2178 of include/application.inc
$000000000041E3DD line 16 of project.lpr

Some issues on Manjaro x86_64

  1. libcef.so requires libudev.so.0, which is not available but can be symlinked from libudev.so.1.6.2, so you might want to add that to the "How to get started"
  2. After 1 is solved, executing LCLSimple demo now results in:

[0105/122337:WARNING:resource_bundle.cc(280)] locale_file_path.empty()
[0105/122337:FATAL:main_delegate.cc(499)] Check failed: !loaded_locale.empty(). Locale could not be found for en-US

Program received signal SIGABRT, Aborted.
0x00007ffff56e5a97 in raise () from /usr/lib/libc.so.6
(gdb) bt

0 0x00007ffff56e5a97 in raise () from /usr/lib/libc.so.6

1 0x00007ffff56e6e6a in abort () from /usr/lib/libc.so.6

2 0x00007fffd7a3bc49 in base::debug::BreakDebugger() () from /usr/lib/libcef.so

3 0x00007fffd7a62165 in logging::LogMessage::~LogMessage() () from /usr/lib/libcef.so

4 0x00007fffd799a44e in CefMainDelegate::InitializeResourceBundle() () from /usr/lib/libcef.so

5 0x00007fffd799c577 in CefMainDelegate::PreSandboxStartup() () from /usr/lib/libcef.so

6 0x00007fffda15f65c in content::ContentMainRunnerImpl::Initialize(int, char const*, content::ContentMainDelegate) clone .part.10 from /usr/lib/libcef.so

7 0x00007fffda15ffaf in content::ContentMainRunnerImpl::Initialize(int, char const*, content::ContentMainDelegate) () from /usr/lib/libcef.so

8 0x00007fffd79473d2 in CefContext::Initialize(CefMainArgs const&, CefStructBase const&, CefRefPtr, void*) () from /usr/lib/libcef.so

9 0x00007fffd794784c in CefInitialize(CefMainArgs const&, CefStructBase const&, CefRefPtr, void*) () from /usr/lib/libcef.so

10 0x00007fffd78cbd26 in cef_initialize () from /usr/lib/libcef.so

11 0x0000000000724780 in CEFINITIALIZE (CACHE=0x0, USERAGENT=0x0, PRODUCTVERSION=0x0, LOCALE=0x0, LOGFILE=0x0, BROWSERSUBPROCESSPATH=0x74b030 './subprocess',

LOGSEVERITY=LOGSEVERITY_DEFAULT, JAVASCRIPTFLAGS=0x0, RESOURCESDIRPATH=0x0, LOCALESDIRPATH=0x0, SINGLEPROCESS=255, NOSANDBOX=true, COMMANDLINEARGSDISABLED=false, 
PACKLOADINGDISABLED=false, REMOTEDEBUGGINGPORT=0, RELEASEDCHECK=false, UNCAUGHTEXCEPTIONSTACKSIZE=0, CONTEXTSAFETYIMPLEMENTATION=0) at ../cef3lib.pas:266

---Type to continue, or q to quit---

12 0x000000000072431c in CEFINITDEFAULT () at ../cef3lib.pas:194

I'm a bit lost here since I don't know what "locale" thing is expected here, because it doesn't seem to be related to /etc/locale.gen.

Is string type correct?

TChromiumFontOptions.StandardFontFamily, FixedFontFamily or etc is type of String.
The correct type is not String but ustring?
(Or need using UTF8Decode in GetFontFamily and SetFontFamily method.)
many "Warning: Implicit string type conversion with potential data loss from "WideString" to "AnsiString" " is up in Lazarus trunc with FPC3.0.0RC2.

Question: Wait download completes

Thank you ! Now the download works like a charm. I want to know if there is a way of wait the download completes before i run the next command:

    files.Add('/tmp/lastfile.pdf');      

    FreeAndNil(files);

    RunCommand('/usr/bin/evince',['/tmp/lastfile.pdf'], s);   

It is running the command at the same time the file is being saved or something like this.

Attempt for porting to OSX

Hi,
I am trying to adopt fpCEF3 for osx (Carbon widgets). I am able to load libraries but then app crashed.
Any pointing me is welcomed.
Thanks
zbyna
Lazarus Call Stack:

#0 ?? at :0
#1 cef_zip_reader_create at :0
#2 cef_zip_reader_create at :0
#3 cef_zip_reader_create at :0
#4 cef_browser_host_create_browser_sync at :0
#5 CEF3LIB_$$_CEFBROWSERHOSTCREATEBROWSERSYNC$crc4DE1F0D0 at :0
#6 CEF3LCL$_$TCUSTOMCHROMIUM_$__$$_CREATEBROWSER at :0
#7 CEF3LCL$_$TCUSTOMCHROMIUM_$__$$_CREATEWND at :0
#8 CONTROLS$_$TWINCONTROL_$__$$_CREATEWND at :0
#9 CONTROLS$_$TWINCONTROL_$__$$_HANDLENEEDED at :0
#10 CONTROLS$_$TWINCONTROL_$__$$_CREATEWND at :0
#11 FORMS$_$TSCROLLINGWINCONTROL_$__$$_CREATEWND at :0
#12 FORMS$_$TCUSTOMFORM_$__$$_CREATEWND at :0
#13 FORMS$_$TFORM_$__$$_CREATEWND at :0
#14 CONTROLS$_$TWINCONTROL_$__$$_CREATEHANDLE at :0
#15 CONTROLS$_$TWINCONTROL_$__$$_HANDLENEEDED at :0
#16 FORMS$_$TAPPLICATION_$__$$_CREATEFORM$TCOMPONENTCLASS$formal at :0
#17 PASCALMAIN at project1.lpr:18
#18 SYSTEM_$$_FPC_SYSTEMMAIN$LONGINT$PPCHAR$PPCHAR at :0
#19 _start at :0
#20 start at :0

Mac system log:

Crashed Thread:        0  CrBrowserMain  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000000

VM Regions Near 0:
--> 
    __TEXT                 0000000000010000-00000000002ed000 [ 2932K] r-x/rwx SM=COW  /Users/USER/Documents/*/project1.app/Contents/MacOS/project1

Application Specific Information:
objc_msgSend() selector name: addSubview:


Thread 0 Crashed:: CrBrowserMain  Dispatch queue: com.apple.main-thread
0   libobjc.A.dylib                 0x9434b0ab objc_msgSend + 27
1   org.chromium.ContentShell.framework 0x07ab1c06 cef_zip_reader_create + 20710
2   org.chromium.ContentShell.framework 0x07ab1638 cef_zip_reader_create + 19224
3   org.chromium.ContentShell.framework 0x07ab13cd cef_zip_reader_create + 18605
4   org.chromium.ContentShell.framework 0x07a665a8 cef_browser_host_create_browser_sync + 952
5   com.company.project1            0x0028acdc CEF3LIB_$$_CEFBROWSERHOSTCREATEBROWSERSYNC$crc4DE1F0D0 + 220
6   com.company.project1            0x0028d729 CEF3LCL$_$TCUSTOMCHROMIUM_$__$$_CREATEBROWSER + 217
7   com.company.project1            0x0028d475 CEF3LCL$_$TCUSTOMCHROMIUM_$__$$_CREATEWND + 21
8   com.company.project1            0x001c4871 CONTROLS$_$TWINCONTROL_$__$$_HANDLENEEDED + 97
9   com.company.project1            0x001c3ead CONTROLS$_$TWINCONTROL_$__$$_CREATEWND + 2685
10  com.company.project1            0x0003a763 FORMS$_$TSCROLLINGWINCONTROL_$__$$_CREATEWND + 51
11  com.company.project1            0x00041557 FORMS$_$TCUSTOMFORM_$__$$_CREATEWND + 39
12  com.company.project1            0x00042714 FORMS$_$TFORM_$__$$_CREATEWND + 52
13  com.company.project1            0x001c3421 CONTROLS$_$TWINCONTROL_$__$$_CREATEHANDLE + 33
14  com.company.project1            0x001c4871 CONTROLS$_$TWINCONTROL_$__$$_HANDLENEEDED + 97
15  com.company.project1            0x0004ab55 FORMS$_$TAPPLICATION_$__$$_CREATEFORM$TCOMPONENTCLASS$formal + 261
16  com.company.project1            0x000116fb PASCALMAIN + 91
17  com.company.project1            0x00034605 FPC_SYSTEMMAIN + 69
18  com.company.project1            0x0001167d _start + 212
19  com.company.project1            0x000115a8 start + 40

Console log:

Last login: Mon Jun  1 22:32:39 on ttys000
ZBYNEK-MBP:~ zbyna$ /Users/zbyna/Documents/Code\ Typhon\ Pokusy/CEF3_pokus/project1.app/Contents/MacOS/project1 ; exit;
Timer created.
ClientHandler instances: 1
Warning: Using Carbon custom control instead of not implemented win control!
CefInitDefault
CefInitialize
CefLoadLibrary ... /Users/zbyna/Documents/Code Typhon Pokusy/CEF3_pokus/project1.app/Contents/Frameworks/Chromium Embedded Framework.framework/Chromium Embedded Framework
-> loaded
2015-06-01 22:36:38.051 project1[1515:55237] Internals of CFAllocator not known; out-of-memory failures via CFAllocator will not result in termination. http://crbug.com/45650
[0601/223638:WARNING:resource_bundle.cc(280)] locale_file_path.empty()
CefInitialize - zdá se proběhlo
CefBrowserHostCreateBrowserSync in cef3lib.pas
2015-06-01 22:36:38.163 project1 Helper[1516:55286] Internals of CFAllocator not known; out-of-memory failures via CFAllocator will not result in termination. http://crbug.com/45650
[0601/223638:WARNING:resource_bundle.cc(280)] locale_file_path.empty()
Segmentation fault: 11
logout

CefV8Value::CreateFunction() equivalent in FPC

In the CEF C++ documentation there is a way to create a function:

CefV8Value::CreateFunction("myfunc", handler);

(a native function that then can be called by Javascript code, AFAIK)

Is there anything equivalent for freepascal/lazarus ?
I was thinking RTTI was the way, but not sure, there are probably multiple ways, as CEF is quite complex of an API.

From the documentation:
"CEF supports the creation of JS functions with native implementations. Functions are created using the CefV8Value::CreateFunction()"

https://bitbucket.org/chromiumembedded/cef/wiki/JavaScriptIntegration.md#markdown-header-js-functions

Also, do you accept Donations (money) for your great contributions to this project :-) and thanks for making it work with fpc

How to use the ResponseFilter

Hi,
I want to realize response content filtering, see related functions and interfaces, such as cef_response_filter_filter, TCefResponseFilterOwn., but I do not know how to use, would you please tell me the use of methods, or to provide a corresponding demo, thank you very much.

What's the CEF lib version to use?

Hello,

I'm trying to use fpCEF on Windows, but it raises the following error:

Unknown Run-Time error : 255.

And creates the log:

[1230/174837:FATAL:icu_util.cc(225)] Check failed: result. 
Backtrace:
    cef_time_to_timet [0x545F1D57+815623]
    cef_time_to_timet [0x545BCEB1+598881]
    TerminateProcessWithoutDump [0x5684CD31+13273313]
    TerminateProcessWithoutDump [0x55F425FF+3793327]
    cef_string_list_value [0x544FBA45+39461]
    cef_string_list_value [0x544FB569+38217]
    cef_initialize [0x544CDBC2+162]
    (No symbol) [0x0053F523]
    (No symbol) [0x0053F5B3]
    (No symbol) [0x0053CC68]
    (No symbol) [0x0053CCEF]
    (No symbol) [0x004F12F1]
    (No symbol) [0x004F09C0]
    (No symbol) [0x00416E91]
    (No symbol) [0x0041C9A7]
    (No symbol) [0x0041D7C8]
    (No symbol) [0x004F0191]
    (No symbol) [0x004F12F1]
    (No symbol) [0x00423484]
    (No symbol) [0x00402CA6]

I believe that I'm using the wrong version of CEF library. My package is cef_binary_3.2556.1368.g535c4fb_windows32.7z, downloaded from https://cefbuilds.com/, and I just unpacked it into my EXE directory.

So, what's the CEF lib version to use?

Thank you!

Create form dialog with TChromium in it.

Hi, I am trying to using fpCEF3 on my little project. I am creating 2 form, 1 for Main, and another as dialog form with TChromium in it. but strange things happen, when I click button on Main form to showing dialog form, its show but main form is recreated.

to make it clear, please download this file before 48hours

I am using fpc 3.0.0 32bit, lazarus svn, on my windows 8.1 vm

thanks

herux

TCefRTTIExtension commented out in cef3own.pas

Was wondering about TCefRTTIExtension, and it seems you commented it out.
Was it because fpc is not ready for this code, which originally came from the Delphi CEF3 project? Or for another reason? (likely TValue not compatible with fpc)

Also are there alternatives to TCefRTTIExtension that are superior so less need for it?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.