Google forks WebKit, promises faster, leaner Chrome engine

Says 'large-scale architectural changes' coming

Google has announced that its Chrome browser is dropping the popular WebKit browser engine in favor of Blink, a new fork of the code that the Chocolate Factory says will make Chrome faster, more powerful, and more secure.

The internet ad giant announced the move on Wednesday via the official blog of the Chromium project, the open source effort upon which Chrome is based.

"This was not an easy decision," Google's Adam Barth wrote. "We know that the introduction of a new rendering engine can have significant implications for the web."

"Nevertheless, we believe that having multiple rendering engines – similar to having multiple browsers – will spur innovation and over time improve the health of the entire open web ecosystem."

Past versions of Chrome have rendered web content using WebKit, the same open source rendering engine that powers Apple's Safari and various other desktop and mobile browsers.

But Chrome never used WebKit in quite the same way that Safari did. For example, Chrome ignored WebKit's JavaScriptCore component in favor of Google's homegrown JavaScript engine, V8. It also handled multiple browser processes in a significantly different way than Safari did.

The need to maintain a WebKit code base that worked with Chrome's approach as well as those of other browsers has made both the WebKit and the Chromium projects increasingly complex to manage, Barth said, which in turn has slowed down the pace of development.

By breaking with the mainline WebKit project and developing Blink as a separate effort, Google aims to improve Chrome more rapidly while allowing Safari and other WebKit-based browsers to do the same.

Big changes coming

It won't be a clean break, however. In fact, the initial code base of Blink is identical to the current code base of WebKit. But it won't be long before Google starts making significant changes.

"When Chromium started, our goal was to change as little of WebKit as possible, easing integration with the WebKit codebase," Google writes on the project's official homepage. "With Blink we are excited to make large-scale architectural changes to the code, without having to worry about breaking other consumers of WebKit."

According to Barth, one of the Chocolate Factory's first moves will be to prune out code that is used by other WebKit-based browsers but isn't needed in Chrome, which Barth says amounts to more than 7,000 files and 4.5 million lines.

That more streamlined code base will make it easier for Blink's developers to make sure their browser engine is stable and free of bugs. In the long term, however, it will also allow them to add new features that would not be possible with the current design of WebKit.

"We want to do for networking, rendering and layout what V8 did for JavaScript," Google explains in a Blink developer FAQ. "Remember JS engines before V8? We want the same sort of healthy innovation that benefits all users of the web, on all browsers."

Among the ideas Google has mooted for future versions of Blink include faster interaction between the DOM and the JavaScript engine, better sandboxing of page-rendering processes, code rewrites to improve performance and make better use of multiple processor cores, and faster and more powerful content rendering.

Not just Google

At the same time, Google says it is committed to an open web platform and maintaining compatibility between browsers, and that Blink is not an attempt to steamroll new, proprietary features into the web. Like the rest of the Chromium project, Blink will remain open source software and anyone will be welcome to examine the code and contribute to it.

In fact, at least one of Chrome's competitors is already planning to do just that. Also on Wednesday, Opera Software said that future versions of its browser would use Blink, rather than WebKit – less than two months after the company announced the move to WebKit.

"I know a lot of people worried that there would be less diversity on the Web once Opera Presto was retired, and the forking of WebKit into Blink restores that balance," Opera's Bruce Lawson said in a blog post.

In a separate email, Opera reps told The Register that the company plans to be an active participant in the Blink project.

"After talking over the change with the Chromium team at Google, we believe the forked project is in good hands and that the open source nature of the project will make it even better," a spokesman wrote.

"Our ambition is to contribute Opera's engineering powerhouse expertise and 17 years of experience in browser engines to the Blink project, ranging from support for new web standards to improvements in existing code."

Google says the first builds of Chrome to be based on Blink will arrive in the browser's bleeding-edge Canary release channel in the next couple of days. In keeping with Chrome's standard release cycle, those versions will then migrate to the Developer, Beta, and Stable channels as they are deemed stable.

In the meantime, web developers or anyone else who wants more information are invited to submit questions about Blink via the web. The questions that get the most votes will be answered in a video Q&A session to be held on Thursday at 1pm Pacific Time. ®