The Webkit Open Source Project

libre software, mswl, mswl-cases, mswl-comm, mswl-intro

Hi mates!!!

Following the set of talks about my subject in Case studies today I’m going to talk about the presentation given again by Carlos Garcia Campos (the same guy who gave the presentation about Gnome) but in this case talking about Webkit, the FLOSS project to render web pages in one he is involved too.

So here we go!!


Carlos is involved in Gnome as collaborator but in Webkit he works because it’s his project in his actual work at Igalia.

What is Webkit?

  • Webkit is a web content engine.
  • Started within Apple in 2001 as a fork of KHTML and KJS.
  • Open sourced in 2005.
  • HTML5 media features supported since 2007.
  • JavaScriptCore is rewritten to turn it into a bytecode interpreter (SquirrelFish) in 2008.
  • First Webkit Contributors Meeting in April 2010
  • In April 2010 Webkit2 development is announced.

There is a set of goals in Webkit project:

  • Is focused in webcontent. Create a web content engine.
  • Open Source (BSD-style and LGPL licenses).
  • Compatibility
  • Standards compliance
  • Stability
  • Performance
  • Security
  • Portability
  • Usability
  • Hackability

This last goal is really important because the easy accessibility to the code is really important regarding the good health and life of the project, for that reason around Webkit there are a set of tools to work with Webkit.

Applications using Webkit (web browsers):

  • Epiphany
  • Chromium
  • Arora
  • Safari
  • Android Web Browser.
  • Nokia S60 series web browser.
  • etc.

Email clients:

  • Mail (Apple)
  • Claws Mail
  • Balsa
  • Evolution (experimental)
  • etc.

IM/Chat clients:

  • Adium
  • Empathy
  • Colloquy
  • Fire
  • iChat
  • etc.

RSS Readers:

  • Liferea
  • Straw
  • MiNews
  • etc.

Help viewers

  • Yelp
  • Devhelp
  • Help Viewer (Apple)
  • etc.

Media players:

  • Rhythmbox
  • Real Player
  • etc.

Other:

  • Web Development Applications
  • Blog editors
  • Text editors
  • Widget toolkits
  • Bindings
  • Media centers
  • etc.

These applications can be used in computer desktops, mobile phones, tablets, video game consoles, e-book readers, etc.

A good question to Carlos is why Webkit is really famous and used in different platforms?
With Webkit the creators thought in create an engine of general purpose instead to create a web browser and then the engine rendering.
Similar with the GTK case and Gnome.

All different layers of Webkit are called also Webkit but also the top layer.
This top layer is changed by different companies and projects to create a Webkit more adjusted to their requirements. When this layer is changed, it’s called port.

The most important ports based in Webkit are:

  • Apple Mac
  • Chromium
  • GTK+
  • etc.

Webkit GTK+ is Gnome port of Webkit.

Is not good to compare Webkit with web browsers, Webkit is just a rendering engine, and a web browser is something much bigger and different.

Webkit2 has now 2 different processes the web process and the UI process instead Webkit where we just had a complete Webkit process where there were the two different processes now (the web process and the UI one).

Webkit has more than 1500000 lines of code, the main used programming language is C++ with more than 70% of code.

Following C++ there are Php (usability tests), Python (scripts), Perl (scripts), C (unit tests), etc.

If we check the source folder where there is the main source code of Webkit, C++ is the first language followed by C (not Php).

In the websites folder, the main code is developed in Php followed by Perl, XML and Python.

In the tools directory we can find some tools to help the development of Webkit, in this folder Python is the main programming language, followed by C++ and Perl.

The Webkit activity analysis in 2011, had more than 25000 commits, 73 commits per day, 2217 commits per month and more than 16000 bugs closed.

Is interesting to know Webkit is developed mainly by companies, and the most involved companies in this project are based in the Chromium project, Apple, Webkit, Google, Igalia, Nokia, etc.

Webkit has:

  • more than 350 contributors (45 non committers)
  • 305 committers (200 not reviewers)
  • 105 reviewers (46 Apple, 28 Google, 7 Nokia, 5 RIM, 4 Igalia, etc.)

A candidate for Webkit Committer or Webkit Reviewer should initially be nominated by a reviewer, and then the new committer will be chosen by consensus.

If all goes ok, then Apple will send you the committer agreement you must to sign and send back to Apple.

The copyright in Webkit is from the owner.

To became in a reviewer the process is quite similar collaboration in the project, being nominated, etc.

The coordination and communication in Webkit is based in the main ways the rest of FLOSS project follow as:

  • Website.
  • Wiki
  • Blogs
  • Source Code (Svn and Git)
  • Bugzilla
  • Buildbot
  • Mailing lists
  • IRC

Contributing in the Webkit code is similar to other FLOSS projects, you have to check bugs, create the patch following the code guidelines, send the patch, etc.

Using different scripts Webkit has, you can compile different ports of Webkit, create changelogs, etc.

They also have a machine which is constantly compiling the project checking if the project works ok.

Webkit uses the changelog file to write information about who has done the change, date, etc.

Carlos explains the process to follow when you commit a change in the project, the scripts used, the procedure, guidelines, etc.

Commit Queue is an automatic way of commit patches.

Webkit has EWS (Early Warning System) which is a set of bots which analyze the patch to make sure it works.

There are a lot of bots that make different automated processes watching the commits preformed are ok.

Questions:

Where is located the Webkit infrastructure?
Usually the bots are located in the company place which is working for.

How is the bug fixing procedure regarding the person who is going to fix it?
Usually you are watching Bugzilla and take those which you are interested in fix it.

When somebody wants to propose a new feature or change, which is the procedure?
Usually is sending an email in the Webkit dev mail list with the proposal.

Conclusion

As conclusion, for me is really interesting how this project which is much more interesting for different privative companies follow a very good and strict guideline to collaborate on it, to became a committer, a reviewer, different bots to watching the changes, how the companies collaborate in their own ports and in the general Webkit layer, etc.
In comparison with more community projects, maybe more remote from the interests of the companies as Gnome or KDE, this project is more controlled is still a complete FLOSS project but is much more controlled by the companies involved (as we’ve seen with the commit agreement a collaborator have to sign…)

And that’s all my friends, as always a really interesting talk from Carlos Garcia Campos, you can watch the video here,  and if you want to check the slides used, you can find them here.

See u!!

One thought on “The Webkit Open Source Project

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s