Blink is designed to run on a single abstract platform

Apr 4, 2013 09:50 GMT  ·  By

Google is parting ways with WebKit and has started to work on its own browser engine dubbed Blink. Blink is a WebKit fork, so there won't be any significant differences and changes for a while.

But why would Google want to go its own separate way after working on Webkit for more than five years?

Basically, it boils down to too many cooks, while Google had become the biggest contributor to WebKit, Apple is hot on its heels and there are many other groups involved.

This while Chrome is rather different than all the other browsers relying on WebKit, mostly because of its multi-process architecture and sandbox.

Google couldn't make big changes to WebKit to suit its own needs since they would affect everyone else.

So the main reason for creating its own engine is control, but that's not necessarily a bad thing. In fact, Google has taken measures to ensure that Blink adheres strictly to web standards.

Any new features added to Blink will have to benefit the web, not just Chrome, and will have to be adopted by other browser engine makers before they are considered.

Blink, like WebKit, is an open source project and, while only Googlers are working on for now, the company is welcoming contributors from outside. Several people from Opera will probably become contributors and even code owners very soon.

From a technical standpoint, now that it doesn't have to worry about what everyone else is doing, Google can make some big changes to its own version of WebKit.

The biggest are under the hood and have to do with how Blink fits into Chrome or any other browser for that matter.

Blink only supports one abstract platform, Chrome implements support for the actual platforms: Windows, Linux, Android, etc.

WebKit employs support for all the different platforms it works on, Windows, Linux, Android, iOS and so on, at the low level.

Blink, on the other hand, will support an abstract platform and only one. The code that has to be different for the different platforms will be in Chrome and not in Blink.

"Blink runs on an abstract platform inside of a sandbox and therefore has few operating system-specific dependencies. This design has two consequences: (1) Blink cannot run alone and (2) porting to other platforms happens at a different layer," the project's homepage explains.

Chromium's Content module implements the abstract platform and contains the platform-specific code. So the fastest way to port Blink or embed it into another browser is to use this Content module as is.

In turn, this means that anyone wanting to adopt Blink will have to incorporate several components from Chromium as well. This means it will be harder for others to use Blink rather than WebKit.

The upside is that Blink won't have any platform-specific concerns, meaning new features and changes can be done faster and easier.

And since Blink will be its own separate module, Chrome will be able to much better compartmentalize it for all of the processes, i.e. for all of the tabs, it's running. This means it will be faster and more secure than WebKit inside Chrome.