Changes between Initial Version and Version 1 of Maintenance and architecture list

Feb 13, 2008 9:29:47 AM (15 years ago)
Darin Adler



  • Maintenance and architecture list

    v1 v1  
     1Besides adding features and fixing bugs, there are some maintenance tasks we need to do for WebKit. These are things we talk about all the time on the IRC channel, but some of them take a long time. I thought I'd make a list here of some of the big ones:
     3 - remove all uses of Deprecated classes and then remove the classes themselves
     5 - finish renaming kjs_xxx files in WebCore/bindings/js to more sensible names
     6 - move things defined in WebCore but in the KJS namespace into the WebCore namespace
     8 - do the planned renames in the do-webcore-rename script
     10 - reorganize JavaScriptCore to a "class per file, named after the class" organization
     11 - fix formatting of JavaScriptCore to match normal WebKit standards
     12 - rename the KJS namespace to JavaScriptCore
     14 - finish code moves from Frame to other classes (documented with comments in Frame.h)
     16 - change CompositeEditCommand and EditCommand to not be derived and base any more; just separate classes
     17 - restructure undo handling for edit commands so that the the number of different types of undoable steps is smaller and they have much smaller granularity; we can write more robust versions of them
     19 - eliminate the WebFrameBridge and WebPageBridge classes on Mac
     21 - eliminate raw pointer use in favor of RefPtr/PassRefPtr
     22 - move ref/deref classes to the "start with 1" rather than "start with 0" approach
     24 - fix config.h situation
     26 The config.h file really only exists for platforms that don't have a "prefix header" mechanism.
     28  1) On platforms with a prefix header, it should only have enough contents to make sure you get an error if you forget to include it.
     30  2) Common things that need to be included everywhere should be in a separate header, which should be included in the prefix header on platforms that have it, and in config.h on platforms that don't.
     32  3) We probably should not have a shared cross-platform file named config.h. For example, people building with autotools will want to use it to create config.h.
     34 - fix platform ifdefs that are sprinkled around instead of being concentrated in the platform directory
     36 It's OK to have platform-specific code anywhere if there's a good reason, but <canvas> is a good example of how not to do it.
     38 - rationalize the top-level platform names
     40 Need a name for the Windows CoreGraphics port and the Windows Cairo port.
     42 - bindings wrappers take too long to compile
     44 Should we compile as one giant source file instead of individual files for speed?
     46 - apply style guidelines more consistently to existing code
     47 - fix all the header guards to match the filenames (with a script?)
     48 - remove mildly misleading "this is part of the KDE project" comments
     50 - update Apple licenses to latest version (with a script?)
     51 - update copyrights based on past check-ins (files modified by Apple contributors in 2007 without 2007 listed)
     53 - move Objective-C bindings generation into WebKit
     55 Make the core perl script modular enough that the Objective-C stuff can live in WebKit. Eliminate the scripts that copy all the headers.
     57 - move code that doesn't belong in WebKit into WebCore
     59 There's still a lot of crap in there that can be moved down. WebKit is for binding to the Mac API and to Objective-C.
     61 - move code that doesn't belong in WebCore into WebKit
     63 Things like the Objective-C accessibility wrappers should be in WebKit, with a C++ version in WebCore.