[webkit-dev] Announcing new port: Nix

Hugo Lima hugo.lima at openbossa.org
Tue Sep 10 15:42:17 PDT 2013


On Tue, Sep 10, 2013 at 6:48 PM, Geoffrey Garen <ggaren at apple.com> wrote:
> What value do you think this port will bring to WebKit? For example:
>         Does your code fix bugs or improve performance in WebCore or JavaScriptCore?

As any other WebKit port WebCore bugs are fixed when we found it and
need a fix, our current performance focus is on CoordinatedGraphics
and there are another team working on get the canvas faster.

>         Does the simplification you mentioned allow us to remove existing port-related code?

Not really, it's possible to unite the glib users in many parts, but
to remove existing port-related code depend on the existing port

>         You mentioned that EFL, GTK, and/or Qt could switch to this port. Do they have any plans to do so?

No, we can't decide what other ports do, would be nice to have a
convergence to glib on GTK, EFL and Nix ports, but this doesn't depend
on us. In fact a port can be built on top of Nix, but I doubt any
existing port will do this right now.

>         Do you have a specific plan to ship a NIX-based browser to a large number of customers?

Nix can be used to make a browser, in fact due to their nature of let
some decisions to the application instead of inject pre-defined
behavior on the port itself it can be a better choice if the default
behavior of other ports aren't desired. However the project target is
to have an easy way to use WebKit on whatever product (TV, setup box,
browser, etc) without (or drastically reducing) the need to fork
WebKit just to change those little details involved on the adaptation
of WebKit to whatever platform or software. Another advantage is the
lack of toolkit, so if you want to use WebKit on your brand new and
bizarre platform you only need to port WebKit avoiding the pain of
porting large toolkits with their different build systems like Qt, EFL
or GTK, i.e. Nix have a different target.

> Geoff
> On May 17, 2013, at 5:41 AM, Luciano Wolf <luciano.wolf at openbossa.org> wrote:
>> The openBossa team at INdT Brazil is proud to announce “Nix” - a new
>> WebKit2 port based on POSIX and OpenGL. Nix stands for “WebKit for
>> unix-like platforms” and, if you consider the German meaning of the
>> word "nix", it can be taken as “WebKit plus nothing”. We are looking
>> forward to upstreaming and maintaining this port. Below you will find
>> a brief history about Nix, besides its main goals and motivation.
>> :: A little bit of history ::
>> The first of Nix basic ideas arose from a conversation between Kenneth
>> Rohde Christiansen and Noam Rosenthal, who were wondering about the
>> idea of having a “platform/glib” or platform/posix”.  Other ports such
>> as EFL, GTK and Qt would then be able to develop themselves on top of
>> it, having a common source core.
>> While QtWebKit’s QQuickWebView is great for embedding web content into
>> QtQuick, a few people felt they needed more freedom to implement a
>> different WebView behavior than the one being provided by Qt. Behavior
>> more suitable for tricky use cases like embedding web content in a 3D
>> world, for example. A private API called QRawWebView was implemented
>> to fulfil this gap.
>> Motivated by the 2 aforementioned concepts and by the idea of having a
>> “lightweight” GL based port for developing some prototypes on a
>> RaspberryPi, in August 2012 Caio Oliveira and Jesus Sanchez-Palencia,
>> long term WebKit developers and former INdT employees, kick-started
>> what they called WebKitNix. They started from the EFL port, took out
>> every EFL-specific piece of code, implemented a “raw” GL-based
>> WebView, provided a C API in the WK2 fashion and a set of
>> platform/device APIs based on the former Chromium’s Source/Platform.
>> We can summarize its evolutionary process as:
>> 1. Initial idea: platform/posix or platform/glib (share code);
>> 2. Evolved problem: we wanted to have different behaviors for
>> QQuickWebView -> Qt Raw WebView
>> 3. Network: QtWebKit + Soup experiment
>> 4. Efl Raw WebView experiment
>> 5. Efl Without Efl :)
>> 6. Nix was born.
>> :: What is inside it? ::
>> Most of Nix’s building pieces are shared with other existing ports:
>> CMake build system, GLib, libsoup and Cairo. Also, it uses Coordinated
>> Graphics, Tiled Backing Store and existing WebKit2 C APIs. Having such
>> a tiny WebKit API means that Nix has the smallest possible footprint
>> on the rest of the WebKit project.
>> We take seriously the notion that the WebKit project is for a web
>> rendering engine and nothing else, and try to develop as much of the
>> auxiliary features as possible outside the WebKit project, on top of
>> the API or in the injected bundle.
>> Nix is already covered by Layout Tests, API Tests (TestWebKitAPI) and
>> Ref Tests which are run by our buildbot[1]. Perf tests are supported
>> but we don’t have a buildbot ready for them at this time. Pixel Tests
>> are on the way. Today we have around 75% of layout tests coverage.
>> We have been merging Nix with webkit.org three times per week so it is
>> kept up-to-date. There is a public repository[2] with the original git
>> history and we are looking forward to upstreaming it. (Yes, we fulfill
>> all the “requirements” defined by the “Successful Port How To”
>> document[3])
>> :: Who should use it? ::
>> It targets whoever wants to have a hardware accelerated WebKit2 port
>> on UNIX based devices, with a minimum effort. Nix is now running on
>> x86 and ARM (Raspberry Pi[4] is a supported platform).
>> Flexibility and freedom is guaranteed: you can define your WebView
>> behavior and there’s no toolkit attached, so it may be used with EFL,
>> GTK, Qt or even no toolkit at all.
>> :: Who’s working on it now? ::
>> This port was made in openBossa - an open source research group in
>> Brazil. Nowadays, the team comprehends 5 WebKit committers and 4 more
>> developers. In January, several contributors from the university of
>> Szeged have joined the project as well, and are responsible for many
>> valuable contributions like the current work to switch to libcurl.
>> :: Past and Future ::
>> - 2012 -
>> - August/September: Lab phase, lots of experiments;
>> - October/November: Branching;
>> - late November: test infrastructure running;
>> - 2013 -
>> - January: public repository[2];
>> - May: comments/discussions/objections -> upstreaming;
>> -June & beyond: maintenance, expand test coverage, focus on the web
>> platform (contributing to WebCore).
>> :: Where can you find it? ::
>> website: webkitnix.openbossa.org
>> buildbots: webkitnix.openbossa.org/build/
>> code: https://github.com/WebKitNix/webkitnix
>> contact: nix at openbossa.org
>> IRC: #webkitnix at freenode
>> Best regards,
>> Nix/openBossa team
>> [1] http://webkitnix.openbossa.org/build/
>> [2] https://github.com/WebKitNix/webkitnix
>> [3] http://trac.webkit.org/wiki/SuccessfulPortHowTo
>> [4] https://github.com/WebKitNix/nix-rpi-sdk
>> _______________________________________________
>> webkit-dev mailing list
>> webkit-dev at lists.webkit.org
>> https://lists.webkit.org/mailman/listinfo/webkit-dev
> _______________________________________________
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev

More information about the webkit-dev mailing list