Blink Porting

486 views
Skip to first unread message

kapil kumar

unread,
Sep 16, 2013, 4:25:09 AM9/16/13
to blin...@chromium.org
Hi all,

I want to use Blink on my custom platform , which is ubuntu 12 based linux.(and webkit1 based browser is up and running)
I have gone through some design docs and chromium site. So i have some doubts :

1. Is it possible to replace webkit with blink ? or Content Api is must ? (not looking for using CEF) 
So any guide to do so ?

2. Currently Cairo is being used in my platform, but blink is based on Skia. So how to move to Cairo ? 

3. How about multimedia integration ? any design documents or pointers

Thank you in advance :)
Kapil Kumar

Tom Hudson

unread,
Sep 16, 2013, 6:05:30 AM9/16/13
to kapil kumar, blink-dev
From http://www.chromium.org/blink:

This design has two consequences: (1) Blink cannot run alone, and (2) porting to other platforms happens at a different layer. Instead of adding platform-specific code to Blink, you should use Chromium’s content layer, which provides an implementation of this virtual platform on a wide variety of operating systems including Windows, Linux, Mac OS X, and Android. A separate project called the Chromium Embedded Framework is probably the easiest way to use Chromium (and thus Blink) on your platform.

We don't intend Blink to be a drop-in replacement for WebKit. We don't support any graphics engine other than Skia.

Tom

KaPiL.rIcKy

unread,
Sep 16, 2013, 8:10:39 AM9/16/13
to Tom Hudson, blink-dev
Thanks Tom for your quick reply.

So i feel Blink+Content API should do the trick then ??

Just on more doubt , i want to standalone compile only blink. I got the source from:

I can see .gyp file. Now how to create build.ninja ? 

***Although previously i could compile whole chrome code and then can build just the webcore source module.(or any other module wise build)


TIA :)


--

~~~~~~~~~~~~~~~~~~~~~~~~~~
Thanks and regards
Kapil Kumar
~~~~~~~~~~~~~~~~~~~~~~~~~~

Adam Barth

unread,
Sep 16, 2013, 10:12:51 AM9/16/13
to KaPiL.rIcKy, Tom Hudson, blink-dev
On Mon, Sep 16, 2013 at 5:10 AM, KaPiL.rIcKy <kapil...@gmail.com> wrote:
Thanks Tom for your quick reply.

So i feel Blink+Content API should do the trick then ??

Just on more doubt , i want to standalone compile only blink. I got the source from:

I can see .gyp file. Now how to create build.ninja ? 

It's not really possible to compile a standalone copy of Blink because Blink does not stand alone.  In order to run Blink, you'll need an implementation of Blink's virtual platform abstraction.  It's certainly possible to implement the virtual platform yourself, but it's much, much easier to reuse the implementation that already exists in Chromium's content layer, especially as we evolve the platform abstraction over time.

The instructions for getting the source code are at http://dev.chromium.org/developers/how-tos/get-the-code.

Adam

PhistucK

unread,
Sep 16, 2013, 11:29:39 AM9/16/13
to Adam Barth, KaPiL.rIcKy, Tom Hudson, blink-dev
Sounds like the content API is sort of the WebKit and blink is the WebCore. :)

While easier, it is still not guaranteed at all to be a stable API, right?



PhistucK


To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.

Adam Barth

unread,
Sep 16, 2013, 11:35:20 AM9/16/13
to PhistucK, KaPiL.rIcKy, Tom Hudson, blink-dev
On Mon, Sep 16, 2013 at 8:29 AM, PhistucK <phis...@gmail.com> wrote:
Sounds like the content API is sort of the WebKit and blink is the WebCore. :)

While easier, it is still not guaranteed at all to be a stable API, right?

Neither the Content API nor the Blink API is stable.

Adam

PhistucK

unread,
Sep 16, 2013, 11:41:12 AM9/16/13
to Adam Barth, KaPiL.rIcKy, Tom Hudson, blink-dev
Of course, I just wanted to clarify that both of them are not stable, even though using Content API is easier.


PhistucK

KaPiL.rIcKy

unread,
Sep 16, 2013, 12:49:53 PM9/16/13
to PhistucK, Adam Barth, Tom Hudson, blink-dev
Thanks everyone for such a quick and useful inputs.

Yes, Blink can not be compiled stand alone as i could try and browse the code.

1. So next doubt is what are different components blink depends on ? (hopefully not content API)
for example Skia is one i can see. Any document or pointer is really appreciated.

2. In Content API diagram, i could see chrome browser app directly linked to Webkit. Why so ? Is this going to be moved to content API later ? or i just misunderstood something.

Cheers,
KK 
\m/

Adam Barth

unread,
Sep 16, 2013, 12:52:24 PM9/16/13
to KaPiL.rIcKy, PhistucK, Tom Hudson, blink-dev
On Mon, Sep 16, 2013 at 9:49 AM, KaPiL.rIcKy <kapil...@gmail.com> wrote:
Thanks everyone for such a quick and useful inputs.

Yes, Blink can not be compiled stand alone as i could try and browse the code.

1. So next doubt is what are different components blink depends on ? (hopefully not content API)
for example Skia is one i can see. Any document or pointer is really appreciated.

2. In Content API diagram, i could see chrome browser app directly linked to Webkit. Why so ? Is this going to be moved to content API later ? or i just misunderstood something.

I'm sorry, but this mailing list is not an appropriate forum in which to discuss these questions.  This mailing list is about the development of Blink, not about how to reuse Blink in other projects.

Adam


On Mon, Sep 16, 2013 at 9:11 PM, PhistucK <phis...@gmail.com> wrote:
Of course, I just wanted to clarify that both of them are not stable, even though using Content API is easier.
On Mon, Sep 16, 2013 at 6:35 PM, Adam Barth <aba...@chromium.org> wrote:
On Mon, Sep 16, 2013 at 8:29 AM, PhistucK <phis...@gmail.com> wrote:
Sounds like the content API is sort of the WebKit and blink is the WebCore. :)

While easier, it is still not guaranteed at all to be a stable API, right?

Neither the Content API nor the Blink API is stable.

Adam

 
On Mon, Sep 16, 2013 at 5:12 PM, Adam Barth <aba...@chromium.org> wrote:
On Mon, Sep 16, 2013 at 5:10 AM, KaPiL.rIcKy <kapil...@gmail.com> wrote:
Thanks Tom for your quick reply.

So i feel Blink+Content API should do the trick then ??

Just on more doubt , i want to standalone compile only blink. I got the source from:

I can see .gyp file. Now how to create build.ninja ? 

It's not really possible to compile a standalone copy of Blink because Blink does not stand alone.  In order to run Blink, you'll need an implementation of Blink's virtual platform abstraction.  It's certainly possible to implement the virtual platform yourself, but it's much, much easier to reuse the implementation that already exists in Chromium's content layer, especially as we evolve the platform abstraction over time.

The instructions for getting the source code are at http://dev.chromium.org/developers/how-tos/get-the-code.

Adam

To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.



Nico Weber

unread,
Sep 16, 2013, 3:05:38 PM9/16/13
to KaPiL.rIcKy, PhistucK, Adam Barth, Tom Hudson, blink-dev
On Mon, Sep 16, 2013 at 9:49 AM, KaPiL.rIcKy <kapil...@gmail.com> wrote:
Thanks everyone for such a quick and useful inputs.

Yes, Blink can not be compiled stand alone as i could try and browse the code.

1. So next doubt is what are different components blink depends on ? (hopefully not content API)
for example Skia is one i can see. Any document or pointer is really appreciated.

2. In Content API diagram, i could see chrome browser app directly linked to Webkit. Why so ? Is this going to be moved to content API later ? or i just misunderstood something.

The chrome/ code only calls content/ code, and content/ then calls blink code. Of course all the code is linked into a final executable in the end.

Jiang Jiang

unread,
Sep 16, 2013, 4:41:24 PM9/16/13
to Nico Weber, KaPiL.rIcKy, PhistucK, Adam Barth, Tom Hudson, blink-dev
On Mon, Sep 16, 2013 at 9:05 PM, Nico Weber <tha...@chromium.org> wrote:
> On Mon, Sep 16, 2013 at 9:49 AM, KaPiL.rIcKy <kapil...@gmail.com> wrote:
>>
>> Thanks everyone for such a quick and useful inputs.
>>
>> Yes, Blink can not be compiled stand alone as i could try and browse the
>> code.
>>
>> 1. So next doubt is what are different components blink depends on ?
>> (hopefully not content API)
>> for example Skia is one i can see. Any document or pointer is really
>> appreciated.

Correct me if I am wrong, you can see:

https://code.google.com/p/chromium/codesearch#chromium/src/webkit/DEPS&sq=package:chromium&type=cs

for WebKit API's dependency and DEPS files under

https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/&sq=package:chromium&type=cs

for the internal WebCore, etc. code's dependencies.

>>
>> 2. In Content API diagram, i could see chrome browser app directly linked
>> to Webkit. Why so ? Is this going to be moved to content API later ? or i
>> just misunderstood something.
>
>
> The chrome/ code only calls content/ code, and content/ then calls blink
> code. Of course all the code is linked into a final executable in the end.

That said, there are efforts to make a cleaner split of Blink code
into browser/renderer parts, e.g. https://crbug.com/239107 and
https://crbug.com/239181.

As I understand, when the split is done, it's not completely
impossible to have two different executables for browser and renderer
processes respectively, each only linking to the required parts of
Blink.

- Jiang

James Robinson

unread,
Sep 16, 2013, 6:56:27 PM9/16/13
to Jiang Jiang, Nico Weber, KaPiL.rIcKy, PhistucK, Adam Barth, Tom Hudson, Chromium-dev
+cc chromium-dev
-cc blink-dev, +bcc blink-dev

Moving this to chromium-dev since it's about chromium architecture, not Blink.

>> 2. In Content API diagram, i could see chrome browser app directly linked
>> to Webkit. Why so ? Is this going to be moved to content API later ? or i
>> just misunderstood something.
>

chrome/ code talks to content/ and to Blink, content/ talks only to Blink.   Content does not completely encapsulate the Blink API - for instance, code in chrome/ (in the render process) can talk to Blink's DOM APIs and the content APIs expose some public Blink concepts.  Isolating chrome/ from Blink completely is not a goal.

>
> The chrome/ code only calls content/ code, and content/ then calls blink
> code. Of course all the code is linked into a final executable in the end.

That said, there are efforts to make a cleaner split of Blink code
into browser/renderer parts, e.g. https://crbug.com/239107 and
https://crbug.com/239181.

This isolation is mostly complete - we don't use Blink code in the browser process (for the most part*).
 

As I understand, when the split is done, it's not completely
impossible to have two different executables for browser and renderer
processes respectively, each only linking to the required parts of
Blink.

On windows, this is sort of the case.  We link different DLLs for the browser and render processes and the browser DLL contains almost* no Blink code.

This is not directly related to the chrome / content / Blink split - there are parts of chrome/ and content/ linked into both the browser and render processes.

- James

* We actually link on the order of a half dozen Blink functions into the browser process via the blink_minimal target because there are some irritating dependencies that I'm gradually removing.


- Jiang

Reply all
Reply to author
Forward
0 new messages