Chrome's Process Model Explained(blog.marcchung.com) |
Chrome's Process Model Explained(blog.marcchung.com) |
I'm really curious if webkit2 is going to be widely adopted, and if so, if and how it'll fragment webkit development.
WebKit2 is a very different API than WebKit1, though. For one thing, it is non-blocking, and that necessarily means a lot of changes underneath.
Chrome was built around WebKit1, and it may be clunky to layer it on WebKit2, as it seems unlikely that Google will rewrite/remove Chrome's special multiprocess code and use WebKit2 instead.
So I definitely see some tension between Chrome and Safari here. WebKit2 is multiprocessing for WebKit 'done right', while Chrome's approach was, I suspect, in part done in order to get results quickly (and indeed it got to market far, far before WebKit2).
The duplication of multiprocess code for WebKit is already itself fragmentation in WebKit, which is not surprising given the development model there. But, I expect WebKit to continue to be an excellent project nonetheless.
It may even lead to more uniformity, if we can share at least some of the approach to multiprocess with Chromium.
Incidentally, I would not say there is anything technically wrong or hacky about Chrome's process architecture. The reason we started anew is that it's not very reusable if you don't buy into the whole Chromium stack. Google chose to make multiprocess an app feature, we made it a framework feature. Reusing Chrome's code for a different app or another platform port would require inserting an API boundary where there was never meant to be one.
We did talk to the Google folks about whether they would want to integrate their multiprocess approach into WebKit itself, but that didn't really meet their needs or plans.
I do hope we can converge and share more over time.
It does seem like this is mainly awkward for Chrome. But probably not a big deal.
http://trac.webkit.org/wiki/WebKit2 http://dev.chromium.org/developers/design-documents/multi-pr...