LayoutTests:
authordarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 13 Mar 2007 00:49:02 +0000 (00:49 +0000)
committerdarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 13 Mar 2007 00:49:02 +0000 (00:49 +0000)
commit02639e8da378d38202f03c4ddfa2e1280295eebf
treedeccc9d4f0ae631f0114fe53743224acd9693b4d
parent55a7af5d32ed42b10e462bb08f879a809d390a1f
LayoutTests:

        Reviewed by Tim Hatcher.

        - added a test that checks the classes of wrappers created by both
          the JavaScript binding and the Objective-C binding

        * fast/dom/wrapper-classes-expected.txt: Added.
        * fast/dom/wrapper-classes.html: Added.
        * fast/js/resources/js-test-pre.js: Improve the format of the failure message when
        both the real results and expected results are strings.

WebCore:

        Reviewed by Tim Hatcher.

        - fixed JavaScript wrapper classes to be correct for a variety of cases
          that a new test uncovered: was broken for at least 5 classes

        - fixed Objective-C wrapper classes to be correct for a variety of cases
          that a test case uncovered: was broken for ast least 50 classes

        - added missing DOM API for creating OverflowEvent and WheelEvent instances

        Test: fast/dom/wrapper-classes.html

        * DerivedSources.make: Added missing bindings: HTMLCanvasElement for ObjC,
        CDATASection, Comment, and EntityReference for JavaScript.
        * WebCore.xcodeproj/project.pbxproj: Added those new generated files.

        * bindings/js/JSHTMLElementWrapperFactory.cpp:
        (WebCore::createJSHTMLWrapper): Corrected the wrapper classes for <keygen>,
        which needs an HTMLSelectElement wrapper, and <xmp>, which needs an
        HTMLPreElement wrapper.

        * bindings/objc/DOMInternal.h: Updated for new naming scheme.
        Also moved createDOMWrapper from the KJS namespace to the WebCore namespace.
        * bindings/objc/DOMUtility.mm:
        (KJS::createDOMWrapper): Broke the core function into a separate one, and
        left it in the KJS namespace because Objective-C++ rules make it impossible
        for it to work in the WebCore namespace. Used a macro-based implementation
        to cut down on repeated code, and added missing cases for Counter,
        HTMLOptionsCollection, Range, XPathExpression, XPathResult, Event, RGBColor,
        Rect, Window, DOMImplementation, NodeIterator, TreeWalker, and HTMLCollection.
        (WebCore::createDOMWrapper): The other half of the function.

        * bindings/objc/DOM.mm:
        (WebCore::createElementClassMap): Corrected the wrapper classes for
        <canvas>, which needs a DOMHTMLCanvasElement wrapper, <del>, which needs
        a DOMHTMLModElement wrapper, <embed>, which needs a DOMHTMLEmbedElement
        wrapper, <ins>, which needs a DOMHTMLModElement wrapper, <th>, which needs
        a DOMHTMLTableCellElement wrapper, and <xmp>, which needs an
        DOMHTMLPreElement wrapper.
        (+[DOMNode _wrapNode:]): Updated for new naming scheme.
        (+[DOMNode _wrapEventTarget:]): Ditto.
        (+[DOMNodeFilter _wrapNodeFilter:]): Ditto.
        (ObjCNodeFilterCondition::acceptNode): Ditto.
        (-[DOMDocument createNodeIterator:whatToShow:filter:expandEntityReferences:]): Ditto.
        (-[DOMDocument createTreeWalker:whatToShow:filter:expandEntityReferences:]): Ditto.
        (WebCore::ObjCEventListener::handleEvent): Ditto.

        * dom/Document.cpp: (WebCore::Document::createEvent):
        Added cases for OverflowEvent and WheelEvent.

        * dom/OverflowEvent.h: Added empty constructor and initOverflowEvent.
        * dom/OverflowEvent.cpp:
        (WebCore::OverflowEvent::OverflowEvent): Added.
        (WebCore::OverflowEvent::initOverflowEvent): Added.
        * dom/OverflowEvent.idl: Added initOverflowEvent.

        * bindings/objc/PublicDOMInterfaces.h: Added initOverflowEvent.

        * bindings/objc/DOMCSS.mm:
        (+[DOMStyleSheet _wrapStyleSheet:]): Updated for new naming scheme.
        (+[DOMCSSRule _wrapCSSRule:]): Corrected wrapper for CSSUnknownRule.
        (+[DOMCSSValue _wrapCSSValue:]): Updated for new naming scheme.

        * bindings/js/kjs_css.h:
        (KJS::DOMRGBColor::impl): Added. Used when making an ObjC wrapper.
        (KJS::DOMRect::impl): Ditto.

        * bindings/js/kjs_dom.cpp: (KJS::toJS): Corrected the wrapper classes for
        CDATASection, Comment, and EntityReference.

        * bindings/js/kjs_html.cpp: Corrected the class name for HTMLElement
        (was "DOMHTMLElement") and HTMLCollection (was "Collection").

        * bindings/objc/DOMImplementationFront.h:
        * bindings/objc/DOMImplementationFront.cpp:
        (WebCore::implementationFront): Added new overload that returns a front given
        a JavaScript wrapper. Needed by the code that makes the Objective-C wrapper.

        * bindings/objc/WebScriptObject.mm:
        (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
        Updated since createDOMWrapper is now in the WebCore namespace.

        * bindings/scripts/CodeGeneratorObjC.pm: Update the naming scheme for the
        wrapper creation functions to use _wrapElement: rather then _elementWith:
        style. Removed now-unneeded special cases for things that needed to stay
        upper-case, since we don't have to do the whole lcfirst thing.

        * html/HTMLCanvasElement.idl: Added #if so we can successfully generate the
        Objective-C wrapper for this class, even though we can't yet handle the
        DOMObject return type.

        * html/HTMLOptionsCollection.idl: Added GenerateNativeConverter so we get
        an appropriate toJS function.

        * bindings/objc/DOMEvents.mm:
        (+[DOMEvent _wrapEvent:]):
        * bindings/objc/DOMHTML.mm:
        (-[DOMHTMLDocument createDocumentFragmentWithMarkupString:baseURL:]):
        (-[DOMHTMLDocument createDocumentFragmentWithText:]):
        * bindings/objc/DOMObject.mm:
        (-[DOMObject sheet]):
        * bindings/objc/DOMRGBColor.mm:
        (-[DOMRGBColor red]):
        (-[DOMRGBColor green]):
        (-[DOMRGBColor blue]):
        (-[DOMRGBColor alpha]):
        (+[DOMRGBColor _wrapRGBColor:]):
        * bindings/objc/DOMSVGPathSegInternal.mm:
        (+[DOMSVGPathSeg _wrapSVGPathSeg:]):
        * bindings/objc/DOMXPath.mm:
        (+[DOMNativeXPathNSResolver _wrapXPathNSResolver:]):
        * page/mac/WebCoreFrameBridge.mm:
        (-[WebCoreFrameBridge nodesFromList:]):
        (-[WebCoreFrameBridge elementWithName:inForm:]):
        (-[WebCoreFrameBridge formForElement:]):
        (-[WebCoreFrameBridge currentForm]):
        (-[WebCoreFrameBridge controlsInForm:]):
        (-[WebCoreFrameBridge rangeByAlteringCurrentSelection:SelectionController::direction:SelectionController::granularity:]):
        (-[WebCoreFrameBridge convertNSRangeToDOMRange:]):
        (-[WebCoreFrameBridge markDOMRange]):
        (-[WebCoreFrameBridge markedTextDOMRange]):
        (-[WebCoreFrameBridge smartDeleteRangeForProposedRange:]):
        (-[WebCoreFrameBridge documentFragmentWithMarkupString:baseURLString:]):
        (-[WebCoreFrameBridge documentFragmentWithText:inContext:]):
        (-[WebCoreFrameBridge documentFragmentWithNodesAsParagraphs:]):
        (-[WebCoreFrameBridge replaceSelectionWithNode:selectReplacement:smartReplace:matchStyle:]):
        (-[WebCoreFrameBridge replaceSelectionWithText:selectReplacement:smartReplace:]):
        (-[WebCoreFrameBridge increaseSelectionListLevel]):
        (-[WebCoreFrameBridge increaseSelectionListLevelOrdered]):
        (-[WebCoreFrameBridge increaseSelectionListLevelUnordered]):
        (-[WebCoreFrameBridge dragCaretDOMRange]):
        (-[WebCoreFrameBridge editableDOMRangeForPoint:]):
        (-[WebCoreFrameBridge characterRangeAtPoint:]):
        (-[WebCoreFrameBridge typingStyle]):
        (-[WebCoreFrameBridge rangeOfCharactersAroundCaret]):
        * platform/mac/ClipboardMac.mm:
        (WebCore::ClipboardMac::declareAndWriteDragImage):
        * platform/mac/PasteboardMac.mm:
        (WebCore::Pasteboard::writeSelection):
        Updated for new naming scheme.

WebKit:

        Reviewed by Tim Hatcher.

        - update for the new naming scheme for the Objective-C wrapper-creation
          functions: _wrapElement: instead of _elementWith:, etc.

        * WebCoreSupport/WebEditorClient.mm:
        (WebEditorClient::textFieldDidBeginEditing):
        (WebEditorClient::textFieldDidEndEditing):
        (WebEditorClient::textDidChangeInTextField):
        (WebEditorClient::doTextFieldCommandFromEvent):
        (WebEditorClient::textWillBeDeletedInTextField):
        (WebEditorClient::textDidChangeInTextArea):
        * WebCoreSupport/WebFrameLoaderClient.mm:
        (WebFrameLoaderClient::createPlugin):
        (WebFrameLoaderClient::createJavaAppletWidget):
        * WebView/WebFrame.mm: (kit):
        Use the _wrapElement-style functions.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@20130 268f45cc-cd09-0410-ab3c-d52691b4dbfc
41 files changed:
LayoutTests/ChangeLog
LayoutTests/fast/dom/wrapper-classes-expected.txt [new file with mode: 0644]
LayoutTests/fast/dom/wrapper-classes.html [new file with mode: 0644]
WebCore/CMakeLists.txt
WebCore/ChangeLog
WebCore/DerivedSources.make
WebCore/WebCore.xcodeproj/project.pbxproj
WebCore/WebCoreSources.bkl
WebCore/bindings/js/JSHTMLElementWrapperFactory.cpp
WebCore/bindings/js/kjs_css.h
WebCore/bindings/js/kjs_dom.cpp
WebCore/bindings/js/kjs_html.cpp
WebCore/bindings/objc/DOM.mm
WebCore/bindings/objc/DOMCSS.mm
WebCore/bindings/objc/DOMEvents.mm
WebCore/bindings/objc/DOMHTML.mm
WebCore/bindings/objc/DOMImplementationFront.cpp
WebCore/bindings/objc/DOMImplementationFront.h
WebCore/bindings/objc/DOMInternal.h
WebCore/bindings/objc/DOMObject.mm
WebCore/bindings/objc/DOMRGBColor.mm
WebCore/bindings/objc/DOMSVGPathSegInternal.mm
WebCore/bindings/objc/DOMUtility.mm
WebCore/bindings/objc/DOMXPath.mm
WebCore/bindings/objc/PublicDOMInterfaces.h
WebCore/bindings/objc/WebScriptObject.mm
WebCore/bindings/scripts/CodeGeneratorObjC.pm
WebCore/dom/Document.cpp
WebCore/dom/OverflowEvent.cpp
WebCore/dom/OverflowEvent.h
WebCore/dom/OverflowEvent.idl
WebCore/html/HTMLCanvasElement.idl
WebCore/html/HTMLOptionsCollection.idl
WebCore/page/mac/WebCoreFrameBridge.mm
WebCore/platform/mac/ClipboardMac.mm
WebCore/platform/mac/PasteboardMac.mm
WebKit/ChangeLog
WebKit/WebCoreSupport/WebEditorClient.mm
WebKit/WebCoreSupport/WebFrameLoaderClient.mm
WebKit/WebKit.xcodeproj/project.pbxproj
WebKit/WebView/WebFrame.mm