On Fri, Nov 18, 2011 at 2:38 PM, Ryosuke Niwa <[email protected]> wrote: > On Fri, Nov 18, 2011 at 2:27 PM, Adam Barth <[email protected]> wrote: >> I've done some analysis of header inclusion dependencies, and they're >> actually pretty good for these directories. The main issues at the >> moment are "hub" classes like Page, Frame, and Document, which need to >> be touched by many features. > > One thing I wanted to do is separate those "hub" part of Page, Frame, and > Document into PageBase, FrameBase, and DocumentBase. (Or use Hub that the > word has been coined). This has a nice side-effect of reducing the header > file dependency and possibly reducing the compilation time.
That was has already largely been done for Frame, which is (mostly!) just a holder for various components. One interesting case I've been look at is ENABLE(SQL_DATABASE). In principle, there's no reason WebCore proper should have any ENABLE(SQL_DATABASE) ifdefs. Yet, here's one in ScriptExecutionContext: http://trac.webkit.org/browser/trunk/Source/WebCore/dom/ScriptExecutionContext.h#L74 As far as I can tell, the state for those functions don't interact with any other state on ScriptExecutionContext or Document. Really, SQL_DATABASE just wants to store some state per ScriptExecutionContext. It seems like there should be a way to do that without making a mess of ScriptExecutionContext. IMHO, we want something like the C++ equivalent of Objective-C categories. I'm not sure how best to achieve that. Adam _______________________________________________ webkit-dev mailing list [email protected] http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

