LayoutTests:
authorggaren <ggaren@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 25 Apr 2006 22:58:56 +0000 (22:58 +0000)
committerggaren <ggaren@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 25 Apr 2006 22:58:56 +0000 (22:58 +0000)
commit2e7c6826ca60c938fc1a597d32d57dc1727531c6
tree036e462a87077a8f5ef1c1d585cc329d25fec3ce
parentdea9b01871ea25e1cdd9fbd68293c47ee095ecd9
LayoutTests:

        Reviewed by Maciej.

        Test for the DOM properties supported by object, embed, attribute:
        * fast/dom/plugin-attributes-enumeration-expected.txt: Added.
        * fast/dom/plugin-attributes-enumeration.html: Added.

        Test for setting attributes through DOM properties:
        * plugins/embed-attributes-setting-expected.txt: Added.
        * plugins/embed-attributes-setting.html: Added.

        Test for the special attribute-to-style mappings on embed.
        * plugins/embed-attributes-style-expected.txt: Added.
        * plugins/embed-attributes-style.html: Added.

WebCore:

        Reviewed by Maciej.

        - Removed special handling of attributes in the DOM. To match
        WinIE, we used to make all attributes available as properties of
        their elements in the DOM, but that has caused us more
        compatibility woes than it has solved, so, after talking with Darin
        and Maciej, I'm taking it out. (Firefox does not support it.)

        A layout test regression caused by this change led me to do the
        following as well:

        - Implemented DOM properties missing on EMBED elements: align, height,
        name, width, src, type. Since align, height, name, and width are
        common to all plugin elements, I factored them and some other common
        functionality out into a new abstract base class, HTMLPlugInElement.

        - Removed extraneous attribute-to-style mappings on EMBED elements:
        valign, border. Why they were there in the first place is a question
        for the ages. Neither FF nor IE supports them.

        * bindings/js/kjs_dom.cpp:
        (KJS::getRuntimeObject):
        * bindings/js/kjs_html.cpp:
        (KJS::):
        (KJS::JSHTMLElement::classInfo):
        (KJS::JSHTMLElement::accessors):
        (KJS::JSHTMLElement::embedGetter):
        (KJS::JSHTMLElement::embedSetter):
        * bindings/js/kjs_html.h:
        (KJS::JSHTMLElement::):
        * bindings/scripts/CodeGeneratorJS.pm:
        * dom/Element.idl:
        * html/html_objectimpl.cpp:
        (WebCore::HTMLPlugInElement::HTMLPlugInElement):
        (WebCore::HTMLPlugInElement::align):
        (WebCore::HTMLPlugInElement::setAlign):
        (WebCore::HTMLPlugInElement::height):
        (WebCore::HTMLPlugInElement::setHeight):
        (WebCore::HTMLPlugInElement::name):
        (WebCore::HTMLPlugInElement::setName):
        (WebCore::HTMLPlugInElement::width):
        (WebCore::HTMLPlugInElement::setWidth):
        (WebCore::HTMLPlugInElement::mapToEntry):
        (WebCore::HTMLPlugInElement::parseMappedAttribute):
        (WebCore::HTMLPlugInElement::checkDTD):
        (WebCore::HTMLAppletElement::HTMLAppletElement):
        (WebCore::HTMLAppletElement::~HTMLAppletElement):
        (WebCore::HTMLAppletElement::parseMappedAttribute):
        (WebCore::HTMLAppletElement::insertedIntoDocument):
        (WebCore::HTMLAppletElement::removedFromDocument):
        (WebCore::HTMLAppletElement::getInstance):
        (WebCore::HTMLAppletElement::closeRenderer):
        (WebCore::HTMLAppletElement::detach):
        (WebCore::HTMLEmbedElement::HTMLEmbedElement):
        (WebCore::HTMLEmbedElement::~HTMLEmbedElement):
        (WebCore::HTMLEmbedElement::getInstance):
        (WebCore::HTMLEmbedElement::mapToEntry):
        (WebCore::HTMLEmbedElement::parseMappedAttribute):
        (WebCore::HTMLEmbedElement::attach):
        (WebCore::HTMLEmbedElement::detach):
        (WebCore::HTMLEmbedElement::insertedIntoDocument):
        (WebCore::HTMLEmbedElement::removedFromDocument):
        (WebCore::HTMLEmbedElement::src):
        (WebCore::HTMLEmbedElement::setSrc):
        (WebCore::HTMLEmbedElement::type):
        (WebCore::HTMLEmbedElement::setType):
        (WebCore::HTMLObjectElement::HTMLObjectElement):
        (WebCore::HTMLObjectElement::~HTMLObjectElement):
        (WebCore::HTMLObjectElement::getInstance):
        (WebCore::HTMLObjectElement::parseMappedAttribute):
        (WebCore::HTMLObjectElement::rendererIsNeeded):
        (WebCore::HTMLObjectElement::attach):
        (WebCore::HTMLObjectElement::closeRenderer):
        (WebCore::HTMLObjectElement::detach):
        (WebCore::HTMLObjectElement::insertedIntoDocument):
        (WebCore::HTMLObjectElement::removedFromDocument):
        (WebCore::HTMLObjectElement::recalcStyle):
        * html/html_objectimpl.h:
        (WebCore::HTMLPlugInElement::endTagRequirement):
        (WebCore::HTMLAppletElement::tagPriority):
        (WebCore::HTMLEmbedElement::tagPriority):
        (WebCore::HTMLObjectElement::tagPriority):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@14069 268f45cc-cd09-0410-ab3c-d52691b4dbfc
15 files changed:
LayoutTests/ChangeLog
LayoutTests/fast/dom/plugin-attributes-enumeration-expected.txt [new file with mode: 0644]
LayoutTests/fast/dom/plugin-attributes-enumeration.html [new file with mode: 0644]
LayoutTests/plugins/embed-attributes-setting-expected.txt [new file with mode: 0644]
LayoutTests/plugins/embed-attributes-setting.html [new file with mode: 0644]
LayoutTests/plugins/embed-attributes-style-expected.txt [new file with mode: 0644]
LayoutTests/plugins/embed-attributes-style.html [new file with mode: 0644]
WebCore/ChangeLog
WebCore/bindings/js/kjs_dom.cpp
WebCore/bindings/js/kjs_html.cpp
WebCore/bindings/js/kjs_html.h
WebCore/bindings/scripts/CodeGeneratorJS.pm
WebCore/dom/Element.idl
WebCore/html/html_objectimpl.cpp
WebCore/html/html_objectimpl.h