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