= The Care and Feeding of WebCore Modules = == Overview == As we add more features to WebCore, the project becomes more complex. Some features, like IndexedDB and MediaStream, can add DOM interfaces but aren't otherwise involved in the core functionality of the engine, such as layout and rendering. WebCore Modules let us reduce the complexity of the project by loosening the coupling of between these features and the rest of WebCore. This document describes how WebCore's module system works and how to leverage it when building a new feature. == Dependencies == * https://docs.google.com/drawings/d/10WlCj2J3arxf4cDGRKteNinaP755iFnmYtYtnNSCQOY/edit?authkey=CP6plYAI == Associating JavaScript APIs with "core" objects == * http://trac.webkit.org/wiki/WebKitIDL#Supplemental == Associating state with "core" objects == * http://trac.webkit.org/browser/trunk/Source/WebCore/platform/Supplementable.h == Observing the lifecycle of "core" objects == * http://trac.webkit.org/browser/trunk/Source/WebCore/page/FrameDestructionObserver.h * http://trac.webkit.org/browser/trunk/Source/WebCore/dom/ContextDestructionObserver.h * http://trac.webkit.org/browser/trunk/Source/WebCore/dom/ActiveDOMObject.h == Adding new events and exceptions == * http://trac.webkit.org/browser/trunk/Source/WebCore/dom/EventFactory.in (should be EventNames.in) * http://trac.webkit.org/browser/trunk/Source/WebCore/dom/DOMExceptions.in