[webkit-dev] specifics about what do-webcore-rename will do

Darin Adler darin at apple.com
Fri Mar 17 17:37:35 PST 2006


Eric mentioned the do-webcore-rename script, but Maciej pointed out  
that I could be even more specific about what it does.

The script renames both files and identifiers. It renames all files  
and identifiers that end in "Impl" to remove "Impl", which is  
something we want to do to make DOM classes all have shorter and more  
pleasant names. The concept here is that if there are C++ bindings,  
they will be classes with the same name but in a different namespace.  
Before, C++ bindings were in the same namespace, so we needed the  
"Impl" suffix. The exceptions to this rule are these class names:

     ArrayImpl
     AtomicString
     KWQValueListImpl
     KWQPtrListImpl
     QualifiedNameImpl
     StringImpl
     RectImpl

and these other identifiers:

     featureImpl
     nameImpl
     namespaceURIImpl
     nodeImpl
     qualifiedNameImpl
     strImpl
     versionImpl

In addition, we're doing some other renames at the same time.

     uint => unsigned
     MacFrame => FrameMac
     createAttrImplIfNeeded => createAttrIfNeeded

Avoid name conflicts for classes that would conflict otherwise.

     MouseEvent => PlatformMouseEvent
     WheelEvent => PlatformWheelEvent

Enumeration constants that would conflict otherwise:

     Document => Document_
     Event => Event_

Change JavaScript wrappers to have a "JS" prefix (but only ones we  
can do with a global replace; some are harder):

     HTMLCollection => JSHTMLCollection
     HTMLSelectCollection => JSHTMLSelectCollection
     HTMLSelectElement => JSHTMLSelectElement
     HTMLElement => JSHTMLElement
     HTMLDocument => JSHTMLDocument
     DOMParser => JSDOMParser
     XSLTProcessor => JSXSLTProcessor

File renames for files that already contain only a single class or  
single non-class purpose:

     dom2_rangeimpl => Range
     dom2_viewsimpl => AbstractView
     dom_position => Position
     html_canvasimpl => HTMLCanvasElement
     html_documentimpl => HTMLDocument
     jsediting => JSEditor
     render_arena => RenderArena
     render_box => RenderBox
     render_br => RenderBR
     render_canvas => RenderCanvas
     render_canvasimage => RenderCanvasImage
     render_flexbox => RenderFlexibleBox
     render_flow => RenderFlow
     render_image => RenderImage
     render_inline => RenderInline
     render_layer => RenderLayer
     render_object => RenderObject
     render_theme => RenderTheme
     render_theme_mac => RenderThemeMac
     visible_text => TextIterator
     xmlserializer => JSXMLSerializer
     xslt_processorimpl => XSLTProcessorImpl
     kentities => HTMLEntityNames
     khtmlentities => HTMLEntityNames
     xsl_stylesheetimpl => XSLStyleSheet
     doctypes => DocTypeStrings
     text_affinity => TextAffinity
     edit_actions => EditAction
     html_interchange => HTMLInterchange
     text_granularity => TextGranularity
     domparser => JSDOMParser
     htmlfactory => HTMLElementFactory
     css_grammar => CSSGrammar
     css_computedstyle => CSSComputedStyleDeclaration
     cssproperties => CSSPropertyNames
     cssvalues => CSSValueStrings

De-KWQ and De-Q-ification of platform classes that aren't really the  
same as the corresponding Qt or KDE classes or that have nothing to  
do with KWQ:

     KWQ_BLOCK_EXCEPTIONS => BEGIN_BLOCK_OBJC_EXCEPTIONS
     KWQ_UNBLOCK_EXCEPTIONS => END_BLOCK_OBJC_EXCEPTIONS
     KWQReportBlockedException => ReportBlockedObjCException
     KWQExceptions => BlockExceptions
     KWQAccObject => WebCoreAXObject
     KWQAccObjectID => WebCoreAXID
     KWQAccObjectCache => AccessibilityObjectCache
     KWQValueList => DeprecatedValueList
     QValueList => DeprecatedValueList
     QString => DeprecatedString
     QCString => DeprecatedCString
     Array => DeprecatedArray
     ByteArray => DeprecatedByteArray
     KURL => DeprecatedURL
     QStringList => DeprecatedStringList
     KWQPtrList => DeprecatedPtrList
     QPtrList => DeprecatedPtrList
     KWQListImpl => DeprecatedPtrListImpl
     KWQValueListImpl => DeprecatedValueListImpl
     QPtrQueue => DeprecatedPtrQueue
     KWQValueListNodeImpl => DeprecatedValueListImplNode
     KWQValueListIteratorImpl => DeprecatedValueListImplIterator
     KWQListIteratorImpl => DeprecatedPtrListImplIterator
     QPtrListIterator => DeprecatedPtrListIterator
     QValueListConstIterator => DeprecatedValueListConstIterator
     QValueListIterator => DeprecatedValueListIterator
     QValueListNode => DeprecatedValueListNode
     KWQClipboard => ClipboardMac
     KWQTextField => WebCoreTextField
     KWQTextArea => WebCoreTextArea
     KWQTextAreaTextView => WebCoreTextView
     KWQRenderTreeDebug => RenderTreeAsText
     QRegExp => RegularExpression
     KWQRegExp => RegularExpression
     KJavaAppletWidget => JavaAppletWidget
     KWQKJavaAppletWidget => JavaAppletWidget
     KSVGCSSParser => SVGCSSParser

Use standard "AX" terminology instead of "Acc" terminology:

     accObjectID => axObjectID
     setAccObjectID => setAXObjectID
     removeAccObjectID => removeAXObjectID

Match our newer naming scheme for an enumeration:

     ETextGranularity => TextGranularity
     LINE_BOUNDARY => LineBoundary
     PARAGRAPH_BOUNDARY => ParagraphBoundary
     DOCUMENT_BOUNDARY => DocumentBoundary

Please let me know if you have specific objections to any of these  
specific changes or other ideas for changes to do.

Even though Eric announced we'd do the change tonight, I'm waiting  
for some mail from Maciej before I do this; we may change our plans  
or postpone to next week.

     -- Darin




More information about the webkit-dev mailing list