Blink bindings for Qt, GTK+, Python, Java...

3,266 views
Skip to first unread message

jerzyg...@gmail.com

unread,
Apr 4, 2013, 6:16:57 PM4/4/13
to blin...@chromium.org
WebKit has a variety of bindings for Qt, GTK+, Python, Lisp, etc. Will Blink provide similar ports, so that we could see other open source browsers based on it?

Adam Barth

unread,
Apr 4, 2013, 6:23:06 PM4/4/13
to jerzyg...@gmail.com, blink-dev
The project page gives some information on this topic:

http://www.chromium.org/blink#TOC-How-do-I-port-Blink-to-my-platform-

Rather than supporting a large number of different API layers, Blink
supports a single API layer called the Blink API. You can build
buildings for other environments on top of this API, but you're
probably better off building on top of Chromium's Content API:

http://www.chromium.org/developers/content-module

Adam

Eric Seidel

unread,
Apr 4, 2013, 6:28:58 PM4/4/13
to Adam Barth, jerzyg...@gmail.com, blink-dev
I should note that the Blink API is not considered stable, and not
designed to be used by layers other than Content.

I would definitely recommend using a higher-layer than Blink, as Blink
doesn't even know how to talk to the OS directly without help.

Christian Biesinger

unread,
Apr 4, 2013, 6:31:08 PM4/4/13
to Eric Seidel, Adam Barth, jerzyg...@gmail.com, blink-dev
You may want to look at Chromium Embedded:
https://code.google.com/p/chromiumembedded/

It has bindings for various platforms.

-christian

PhistucK

unread,
Apr 4, 2013, 6:33:58 PM4/4/13
to Eric Seidel, Adam Barth, Jerzy Głowacki, blink-dev
Also note that Content is also an ever changing API, as far as I know.


PhistucK

Darin Fisher

unread,
Apr 4, 2013, 6:40:48 PM4/4/13
to PhistucK, Eric Seidel, Adam Barth, Jerzy Głowacki, blink-dev
Right.  This is why CEF is so especially useful.  It provides a more stable embedding API.  If you track src/content/public/, then you'll have to adapt to its evolution.

Paweł Hajdan, Jr.

unread,
Apr 4, 2013, 6:57:39 PM4/4/13
to Adam Barth, jerzyg...@gmail.com, blink-dev
Note that these are very early days of Blink. There is ongoing work on the supporting infrastructure (continuous integration, developer workflows), then there will be the planned cleanups that will keep most of Blink developers pretty busy.

Re-use is definitely possible, as is the case with Opera. I know Open Source projects have different requirements. I'll keep watching this mailing list for topics related to this.

Paweł


On Thu, Apr 4, 2013 at 3:23 PM, Adam Barth <aba...@chromium.org> wrote:

Jerzy Głowacki

unread,
Apr 5, 2013, 11:08:15 AM4/5/13
to Paweł Hajdan, Jr., Adam Barth, blink-dev
Thanks for your replies! So basically it seems that Blink is tied to
CEF and there are low chances to see e.g. Midori on Blink, unless it
bundles CEF.

Lars Knudsen

unread,
Apr 5, 2013, 11:30:57 AM4/5/13
to Darin Fisher, PhistucK, Eric Seidel, Adam Barth, Jerzy Głowacki, blink-dev
Maybe slightly offtopic - but since CEF is mentioned so often.

I am currently using qt5 and qtwebkit (even hacking a bit in it) to build a custom browser(-ish) solution.  I have tried to get my head around CEF and how to get started, but it seems that getting from zero to just a "Hello World" WebView application built from scratch (I am using linux - where is the Ubuntu "apt-get install cef-dev" ;)) is 100x harder than doing the exact same using qt and qtwebkit - even if you build *that* from scratch.  It also seems to require a lot more resources from the build machine.  Can that be right?

I guess what I am asking here:

Can you or anyone else point me in a direction of very simple step by step (preferably a bash script) instructions on how to get from a vanilla Ubuntu 12.xx to a working webview demo.

Next step is to get that running on a RaspberryPi for my project (where Qt5/WebView runs fine).

br
Lars



Marshall Greenblatt

unread,
Apr 5, 2013, 11:43:51 AM4/5/13
to Jerzy Głowacki, Paweł Hajdan, Jr., Adam Barth, blink-dev
Hi Jerzy,

You can use the Content API directly if you do not wish to use CEF. Chromium provides an application called Content Shell that demonstrates basic usage and functionality. However, Content Shell is intended for testing the Content API and is not optimized or supported for any other use. It provides the minimum implementation that is needed for this purpose. The Content API changes frequently and many features (geolocation, cookies, proxy settings, JS bindings, DOM access, etc) require "glue" code in the consumer. CEF is designed specifically for use in production environments, provides stable APIs, branches and binary releases, and isolates the user from the underlying Chromium and WebKit (now Blink) code complexity. Most features have default implementations that require little or no work by the user. So the choice really depends on how you want to spend your time -- learning the code base and merging Chromium/Blink code changes, or developing your unique application. CEF is open source so you can always use it as a starting point and change it if necessary to better suit your needs.

Regards,
Marshall

Marshall Greenblatt

unread,
Apr 5, 2013, 11:45:49 AM4/5/13
to Lars Knudsen, Darin Fisher, PhistucK, Eric Seidel, Adam Barth, Jerzy Głowacki, blink-dev
On Fri, Apr 5, 2013 at 11:30 AM, Lars Knudsen <lar...@gmail.com> wrote:
Maybe slightly offtopic - but since CEF is mentioned so often.

I am currently using qt5 and qtwebkit (even hacking a bit in it) to build a custom browser(-ish) solution.  I have tried to get my head around CEF and how to get started, but it seems that getting from zero to just a "Hello World" WebView application built from scratch (I am using linux - where is the Ubuntu "apt-get install cef-dev" ;)) is 100x harder than doing the exact same using qt and qtwebkit - even if you build *that* from scratch.  It also seems to require a lot more resources from the build machine.  Can that be right?

CEF requires Chromium. Building Chromium takes a reasonably powerful computer.
 

I guess what I am asking here:

Can you or anyone else point me in a direction of very simple step by step (preferably a bash script) instructions on how to get from a vanilla Ubuntu 12.xx to a working webview demo.

Lars Knudsen

unread,
Apr 5, 2013, 11:56:37 AM4/5/13
to Marshall Greenblatt, Darin Fisher, PhistucK, Eric Seidel, Adam Barth, Jerzy Głowacki, blink-dev
On Fri, Apr 5, 2013 at 5:45 PM, Marshall Greenblatt <magree...@gmail.com> wrote:
On Fri, Apr 5, 2013 at 11:30 AM, Lars Knudsen <lar...@gmail.com> wrote:
Maybe slightly offtopic - but since CEF is mentioned so often.

I am currently using qt5 and qtwebkit (even hacking a bit in it) to build a custom browser(-ish) solution.  I have tried to get my head around CEF and how to get started, but it seems that getting from zero to just a "Hello World" WebView application built from scratch (I am using linux - where is the Ubuntu "apt-get install cef-dev" ;)) is 100x harder than doing the exact same using qt and qtwebkit - even if you build *that* from scratch.  It also seems to require a lot more resources from the build machine.  Can that be right?

CEF requires Chromium. Building Chromium takes a reasonably powerful computer.
 
More than qtwebkit it seems, yes :-s 

 

I guess what I am asking here:

Can you or anyone else point me in a direction of very simple step by step (preferably a bash script) instructions on how to get from a vanilla Ubuntu 12.xx to a working webview demo.

Thanks.

Btw - do you know if it will run on pure gles2 (no window manager) in "kiosk mode"/fullscreen?

Do you know if there are any "cef-dev" and "chromium-dev" packages somewhere?

Also, the tutorial doesn't cover "fetching and building for dummies" (assume I am one - at least for the purpose of this exercise ;))  - maybe along these lines: http://trac.webkit.org/wiki/BuildingQtOnLinux

Marshall Greenblatt

unread,
Apr 5, 2013, 12:14:09 PM4/5/13
to Lars Knudsen, Darin Fisher, PhistucK, Eric Seidel, Adam Barth, Jerzy Głowacki, blink-dev
On Fri, Apr 5, 2013 at 11:56 AM, Lars Knudsen <lar...@gmail.com> wrote:



On Fri, Apr 5, 2013 at 5:45 PM, Marshall Greenblatt <magree...@gmail.com> wrote:
On Fri, Apr 5, 2013 at 11:30 AM, Lars Knudsen <lar...@gmail.com> wrote:
Maybe slightly offtopic - but since CEF is mentioned so often.

I am currently using qt5 and qtwebkit (even hacking a bit in it) to build a custom browser(-ish) solution.  I have tried to get my head around CEF and how to get started, but it seems that getting from zero to just a "Hello World" WebView application built from scratch (I am using linux - where is the Ubuntu "apt-get install cef-dev" ;)) is 100x harder than doing the exact same using qt and qtwebkit - even if you build *that* from scratch.  It also seems to require a lot more resources from the build machine.  Can that be right?

CEF requires Chromium. Building Chromium takes a reasonably powerful computer.
 
More than qtwebkit it seems, yes :-s 

 

I guess what I am asking here:

Can you or anyone else point me in a direction of very simple step by step (preferably a bash script) instructions on how to get from a vanilla Ubuntu 12.xx to a working webview demo.

Thanks.

Btw - do you know if it will run on pure gles2 (no window manager) in "kiosk mode"/fullscreen?

CEF currently requires GTK+. It is possible to create a full-screen kiosk-style window using CEF but you will need a window manager.
 

Do you know if there are any "cef-dev" and "chromium-dev" packages somewhere?

There is no official CEF binary package for Linux at this time. Some companies distribute CEF binary packages for use by their own applications (see for example libcef-desura).
 

Also, the tutorial doesn't cover "fetching and building for dummies" (assume I am one - at least for the purpose of this exercise ;))  - maybe along these lines: http://trac.webkit.org/wiki/BuildingQtOnLinux

Building CEF/Chromium from source code is relatively simple. See https://code.google.com/p/chromiumembedded/wiki/BranchesAndBuilding for a step-by-step guide.

Czarek Tomczak

unread,
Sep 6, 2013, 9:00:12 AM9/6/13
to blin...@chromium.org, Darin Fisher, PhistucK, Eric Seidel, Adam Barth, Jerzy Głowacki
On Friday, April 5, 2013 5:30:57 PM UTC+2, Lars Knudsen wrote:
Maybe slightly offtopic - but since CEF is mentioned so often.

I am currently using qt5 and qtwebkit (even hacking a bit in it) to build a custom browser(-ish) solution.  I have tried to get my head around CEF and how to get started, but it seems that getting from zero to just a "Hello World" WebView application built from scratch (I am using linux - where is the Ubuntu "apt-get install cef-dev" ;)) is 100x harder than doing the exact same using qt and qtwebkit - even if you build *that* from scratch. 

Translating the code to Qt C++ should be straightforward. 

-Czarek

jerzyg...@gmail.com

unread,
Oct 23, 2013, 10:27:21 AM10/23/13
to blin...@chromium.org, Darin Fisher, PhistucK, Eric Seidel, Adam Barth, Jerzy Głowacki
Finally there is a Blink binding for Qt called QtWebEngine, which will replace QtWebKit.
Reply all
Reply to author
Forward
0 new messages