[webkit-dev] Namespace changes

Maciej Stachowiak mjs at apple.com
Tue Jan 10 15:13:33 PST 2006

As part of reorganizing WebCore, we'd like to change some of our  
namespacing conventions. Currently we use a mix of naming schemes:

remnants of the KDE C++ DOM API are in namespace DOM::
implementation files for the DOM are in namespace DOM::
many layout engine internal files (such as the render tree) are in  
namespace khtml::
some classes are in no namespace, but with a KHTML prefix
some classes are in no namespace but with a KWQ prefix
some classes are in no namespace and use the Q or K prefixes from KDE
some classes are in no namespace but with a WebCore prefix
the JS DOM bindings code is in namespace KJS:: (despite not being  
part of KJS itself)
SVG code uses various other namespaces and prefixes (KSVG, KCanvas, etc)

As an alternative to this scheme, we came up with the following:

- Use WebCore:: as the single namespace in WebCore. This will let us  
avoid namespace gunk in the core code.
- Drop KWQ and KHTML prefixes from classes that have them, use plain  
- For K and Q classes, we could leave the K or Q if they are still  
much like the original, otherwise rename to plain name in WebCore::
- Platform API code could use a different namespace (for example C++  
DOM API could be in namespace DOM, autogenerated JS bindings might be  
in its own namespace to avoid conflicts eventually, ObjC classes for  
OS X could use WebCore prefix instead)

Basically the short version of this is, use namespace WebCore for  
everuthing internal.

We also considered other possibilities for the namespace to use for  

- khtml
- WebKit

So far, WebCore:: has been the opinion leader.

Any thoughts in this?


More information about the webkit-dev mailing list