Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Dolphin binding for Chromium Embedded Framework (CEF)

303 views
Skip to first unread message

Alexandre Maurel

unread,
Apr 22, 2014, 5:10:51 AM4/22/14
to
https://github.com/amaurel/dolphin-chrome-embedded

Dolphin CEF integration.

Setup:

- clone the repo

- save a dolphin smalltalk image in ./bin

- load package ./src/amcef/amcef.pac

- browse package amcef

Note : cef runtime is provided for a quick startup.

(Windows 32bit, 2014-04-17 CEF 3.1921.1661 - Chromium 36.0.1921.0 r261035)

john....@gmail.com

unread,
Apr 23, 2014, 11:23:02 PM4/23/14
to
Nice work Alexandre!

I had to do a few things to get this working (running D6.1B2 Pro on Win 8.1 x64):
1) Had to remove prerequisite AMCyclicPrerequisities from AMCEF.pac to be able to import the package
2) There were two compile error on import: Had to replace last semicolon in the defineFields class method on CEFBase and CEFString
3) It couldn't find the dll's or locales folder in the bin directory so I had to copy them to the Dolphin installation directory.

As you can see, I'm posting this message from the Dolphin window!
http://prntscr.com/3cvly5

Jacob Wagner

unread,
Apr 29, 2014, 9:55:40 AM4/29/14
to
Thanks Alexandre. This looks quite interesting. Is there any speculation as to all this would allow a dolphin programmer to accomplish? I am going crazy trying to think of all the new things I could do with dolphin now :)

Alexandre Maurel

unread,
Apr 30, 2014, 4:28:24 AM4/30/14
to
Thanks John, for testing.
I'm refactoring the way cef callbacks are handled, in the current implementation each instance is managing its own callbacks, but this should be done at the class level, I'm also adding the ability to handle post data from a request, once done I will push a new version.

Alexandre Maurel

unread,
Apr 30, 2014, 4:43:40 AM4/30/14
to
Le mardi 29 avril 2014 15:55:40 UTC+2, Jacob Wagner a écrit :
> Thanks Alexandre. This looks quite interesting. Is there any speculation as to all this would allow a dolphin programmer to accomplish? I am going crazy trying to think of all the new things I could do with dolphin now :)

Hi Jacob,

I don't know what you think at, but in my case I am using this library to slowly move a large Dolphin Window application to a Web based application. I'm starting migrating the views to finish with the business model.
I'm just at the begining of the process, so it's hard to figure out if there are any limitations of what can be done.
Right now I'm able to instaure a two-way communication beteewn smalltalk and javascript, javascript send messages to smalltalk through http request, smalltalk send message to javascript directly using CEF. For now it seems to work quite well.
The only limitation I found out right now is related to the DEP policy setup by CEF, which forbid the use of ATL Host in Dolphin, it can be overcome by disabling DEP at system level or by recompiling CEF with DEP policy disabled.

Alexandre Maurel

unread,
May 28, 2014, 6:36:21 AM5/28/14
to
New version

- cef callbacks are now handled at class level
- post data is implemented
- cef3 lib has been recompiled with DEP policy disabled
- cef3 lib is based on Dartium : Dart vm is now embedded in Dolphin !

```
CEF3Library default cef_version_infos. #(3 1706 35 0 1916 0)
CEF3Library default cef_build_revision. 1706

shell := ShellView new
layoutManager: BorderLayout new;
create;
extent: 800@600;
yourself.
view := CEFView new
parentView: shell;
arrangement: #center;
create; show;
yourself.
shell show.

view setUrl: 'http://www.google.com'.
view executeJavascript: 'alert("hello")'.

view setUrl: 'chrome://chrome-urls/'.

view addResourceHandler: (CEFHtmlResourceHandler html: '<html><body bgcolor="white">Hello from Dolphin</body></html>' acceptUrl: [:aUrl | aUrl = 'http://hello-from-dolphin/' ] ).
view setUrl: 'http://hello-from-dolphin'.

"Dart script"
view addResourceHandler: (CEFHtmlResourceHandler html: '
<!DOCTYPE html>
<html>
<head>
<title>Simple Dart App</title>
</head>
<body>
<h1>Hello, Dart!</h1>
<script type="application/dart">
import "dart:html";
main(){
window.alert("hello from dart");
}
</script>
</body>
</html>
' acceptUrl: [:aUrl | aUrl = 'http://dart-from-dolphin/' ]).

view setUrl: 'http://dart-from-dolphin'.
```

mendezbrun...@gmail.com

unread,
Aug 4, 2017, 11:54:44 AM8/4/17
to
Hello! I cant do it work. have you the package working?

gsa

unread,
Aug 29, 2017, 1:17:10 PM8/29/17
to
Very interesting job!

I could use it to replace the traditional Dolphin UI (in a legacy windows desktop application) for new, fancy, html5+css+javascript? What are the steps required?

Thanks.

kegtr...@gmail.com

unread,
Aug 31, 2017, 12:50:37 PM8/31/17
to
i find

the web GUI is so limiting

am i wrong?

the .com webpages i load seem to hog up more and more RAM memory
until at 90+% usage it grinds to a halt they just keep allocating and allocating

but not all webpages have to do that i suppose

[_]-- can the web do anything the Dolphin GUI can do?
0 new messages