We are planning to modularize WebKit. We are planning to split "self-contained" features out of WebCore/ into WebCore/Modules/. For example, we can move WebAudio, WebSocket, IndexedDB, ...etc from WebCore/ to WebCore/Modules/ as self-contained features.
The idea is that modules roughly correspond to features/specifications that aren't core to the rendering engine (like a CSS feature might be). Usually a module will be introduced with a corresponding ENABLE flag. Modules do not depend on each other. The dependency rule ensures that nothing outside the module will be burdened with knowledge/complexity of the ENABLE flag.
Modules enable us to develop self-contained features without touching WebCore/ code. We hope this will make it easier to develop features in each vendor.
Our WebKit modularization plan is here: https://docs.google.com/a/chromium.org/spreadsheet/ccc?key=0AppchfQ5mBrEdFlodHlLb0prdEd1ZEZyUHdCbEpoc2c#gid=0
The WebKit modularization is realized by the [Supplemental] IDL attribute. You can find more information of [Supplemental] here: https://trac.webkit.org/wiki/WebKitIDL#Supplemental
If you would work on WebKit modularization,
- please block this meta bug to track them
- please add the bug # to the SpreadSheet (https://docs.google.com/a/chromium.org/spreadsheet/ccc?key=0AppchfQ5mBrEdFlodHlLb0prdEd1ZEZyUHdCbEpoc2c#gid=0). Ask me if you need a write permission of the SpreadSheet.
As pointed out in bug 79507, when we make supplemental DOMWindow*.idl, WorkerContext*.idl, Navigator*.idl etc, we should copy & paste the CopyRight of the original DOMWindow.idl, WorkerContext.idl, Navigator.idl etc.
I updated and colored the SpreadSheet based on the webkit-dev@ discussion (http://markmail.org/message/kagvswmah67zmrry#query:+page:1+mid:h34vzbiu5suub3ld+state:results).
Compiling them as separate packages/libraries will also encourage more people to hack and contribute to the code base. Currently it's much too daunting, in terms of memory and cpu and disk usage, for most people. Even source-based distros like Gentoo are pressured to create ugly binary packages to deal with this.