WebKit devs on Blink fork: 'Two can play that game'

Now that Google has announced that it will migrate its Chrome browser from the WebKit rendering engine to a homegrown fork called Blink, WebKit developers have already begun discussing how to remove Chrome-specific code from the project.

Streamlining the code of its browser engine was one of the top reasons cited by Google for its decision to fork WebKit. One of the first changes it said it will make will be to delete some 4.5 million lines of code that is used by other WebKit-based browsers but ignored by Chrome.

With Google pulling out of mainline WebKit development, that project's maintainers are now mulling a similar round of housekeeping.

"Since we no longer need to support the Chromium port, let's take the opportunity to streamline. Hopefully, this will make development easier and more coherent for everyone," Apple's Geoffrey Garen wrote in a post to a WebKit development mailing list on Thursday.

Portions of WebKit mooted for deletion include just about everything specific to Chrome, including code that integrates with Google's V8 JavaScript engine, anything that uses Google's Skia graphics library, and support for the Google-URL library. Page rendering and layout test cases specific to Chrome will also likely be purged.

With Chrome out of the picture, Apple's Safari for iOS and OS X will be the most prominent browsers using WebKit. And based on recent project activity, Cupertino will also be far and away the leading contributor to the project.

But other software relies on WebKit, too, and a variety of other companies participate in the project, including Adobe, BlackBerry, Intel, Nokia, and Samsung, among others.

Not all of those parties' needs are identical to Apple's – for example, BlackBerry uses Skia and Samsung uses V8 – which is why Cupertino has opened a discussion about code cleanup before taking any drastic measures. As Apple's Maciej Stachowiak said in another post, "We're not planning to remove things still in use."

That might not be strictly true, though. For example, maintaining support for V8 in WebKit would mean continuing to support two entirely separate JavaScript engines. According to Apple's Oliver Hunt, "I don't think anything could convince me at least that maintaining support for multiple JS engines is good for the project."

And of course, if a company relies heavily on Google-contributed features in WebKit, there's always Blink to consider. Opera, for example, has already said that it plans to migrate its browser away from WebKit and join Google in maintaining Blink, so in its eyes, Apple can remove what it likes.

For its part, Google says it has no problem with WebKit developers deleting its Chrome-specific modifications from the source tree – and in fact, it's ready to help.

"Adam [Barth] and I are happy to work with other reviewers to remove PLATFORM(CHROMIUM) code and other messes we may have caused over the years from webkit.org," Google's Eric Seidel wrote in a separate mailing-list thread on Wednesday.

He added that even as the Blink and WebKit code bases diverge, he hopes that the two projects can continue to maintain a close relationship, and added that Google plans to continue to participate in discussions about WebKit development.

"I hope that others will see Blink as I do: as a chance to take the WebKit codebase to exciting new places," Seidel wrote. "I hope someday that many of the ideas we pursue in Blink will find their way into many platforms, including WebKit." ®