Commit 5f4ed313 authored by weinig@apple.com's avatar weinig@apple.com

WebCore:

2009-06-21  Sam Weinig  <sam@webkit.org>

        Reviewed by Oliver Hunt.

        Fix for https://bugs.webkit.org/show_bug.cgi?id=26596
        Only expose event handler attributes to elements and documents.

        Test: fast/dom/event-attribute-availability.html

        * dom/Document.idl:
        * dom/Element.idl:
        * dom/Node.cpp:
        * dom/Node.h:
        * dom/Node.idl:

LayoutTests:

2009-06-21  Sam Weinig  <sam@webkit.org>

        Reviewed by Oliver Hunt.

        Test for https://bugs.webkit.org/show_bug.cgi?id=26596
        Only expose event handler attributes to elements and documents.

        * fast/dom/event-attribute-availability-expected.txt: Added.
        * fast/dom/event-attribute-availability.html: Added.
        * fast/dom/resources/event-attribute-availability.js: Added.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44928 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent c12acbed
2009-06-21 Sam Weinig <sam@webkit.org>
Reviewed by Oliver Hunt.
Test for https://bugs.webkit.org/show_bug.cgi?id=26596
Only expose event handler attributes to elements and documents.
* fast/dom/event-attribute-availability-expected.txt: Added.
* fast/dom/event-attribute-availability.html: Added.
* fast/dom/resources/event-attribute-availability.js: Added.
2009-06-21 Daniel Bates <dbates@intudata.com>
Reviewed by Adam Barth.
......
This test that the DOM attribute event handlers are avaiable on the only elements and documents, and not all other nodes such as attributes and text nodes.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
Test Element
PASS 'onabort' in element is true
PASS 'onblur' in element is true
PASS 'onchange' in element is true
PASS 'onclick' in element is true
PASS 'oncontextmenu' in element is true
PASS 'ondblclick' in element is true
PASS 'ondrag' in element is true
PASS 'ondragend' in element is true
PASS 'ondragenter' in element is true
PASS 'ondragleave' in element is true
PASS 'ondragover' in element is true
PASS 'ondragstart' in element is true
PASS 'ondrop' in element is true
PASS 'onerror' in element is true
PASS 'onfocus' in element is true
PASS 'oninput' in element is true
PASS 'onkeydown' in element is true
PASS 'onkeypress' in element is true
PASS 'onkeyup' in element is true
PASS 'onload' in element is true
PASS 'onmousedown' in element is true
PASS 'onmousemove' in element is true
PASS 'onmouseout' in element is true
PASS 'onmouseover' in element is true
PASS 'onmouseup' in element is true
PASS 'onmousewheel' in element is true
PASS 'onscroll' in element is true
PASS 'onselect' in element is true
PASS 'onsubmit' in element is true
PASS 'onbeforecut' in element is true
PASS 'oncut' in element is true
PASS 'onbeforecopy' in element is true
PASS 'oncopy' in element is true
PASS 'onbeforepaste' in element is true
PASS 'onpaste' in element is true
PASS 'onreset' in element is true
PASS 'onresize' in element is true
PASS 'onsearch' in element is true
PASS 'onselectstart' in element is true
PASS 'onunload' in element is true
Test Document
PASS 'onabort' in document is true
PASS 'onblur' in document is true
PASS 'onchange' in document is true
PASS 'onclick' in document is true
PASS 'oncontextmenu' in document is true
PASS 'ondblclick' in document is true
PASS 'ondrag' in document is true
PASS 'ondragend' in document is true
PASS 'ondragenter' in document is true
PASS 'ondragleave' in document is true
PASS 'ondragover' in document is true
PASS 'ondragstart' in document is true
PASS 'ondrop' in document is true
PASS 'onerror' in document is true
PASS 'onfocus' in document is true
PASS 'oninput' in document is true
PASS 'onkeydown' in document is true
PASS 'onkeypress' in document is true
PASS 'onkeyup' in document is true
PASS 'onload' in document is true
PASS 'onmousedown' in document is true
PASS 'onmousemove' in document is true
PASS 'onmouseout' in document is true
PASS 'onmouseover' in document is true
PASS 'onmouseup' in document is true
PASS 'onmousewheel' in document is true
PASS 'onscroll' in document is true
PASS 'onselect' in document is true
PASS 'onsubmit' in document is true
PASS 'onbeforecut' in document is true
PASS 'oncut' in document is true
PASS 'onbeforecopy' in document is true
PASS 'oncopy' in document is true
PASS 'onbeforepaste' in document is true
PASS 'onpaste' in document is true
PASS 'onreset' in document is true
PASS 'onresize' in document is true
PASS 'onsearch' in document is true
PASS 'onselectstart' in document is true
PASS 'onunload' in document is true
Test Text Node
PASS 'onabort' in textNode is false
PASS 'onblur' in textNode is false
PASS 'onchange' in textNode is false
PASS 'onclick' in textNode is false
PASS 'oncontextmenu' in textNode is false
PASS 'ondblclick' in textNode is false
PASS 'ondrag' in textNode is false
PASS 'ondragend' in textNode is false
PASS 'ondragenter' in textNode is false
PASS 'ondragleave' in textNode is false
PASS 'ondragover' in textNode is false
PASS 'ondragstart' in textNode is false
PASS 'ondrop' in textNode is false
PASS 'onerror' in textNode is false
PASS 'onfocus' in textNode is false
PASS 'oninput' in textNode is false
PASS 'onkeydown' in textNode is false
PASS 'onkeypress' in textNode is false
PASS 'onkeyup' in textNode is false
PASS 'onload' in textNode is false
PASS 'onmousedown' in textNode is false
PASS 'onmousemove' in textNode is false
PASS 'onmouseout' in textNode is false
PASS 'onmouseover' in textNode is false
PASS 'onmouseup' in textNode is false
PASS 'onmousewheel' in textNode is false
PASS 'onscroll' in textNode is false
PASS 'onselect' in textNode is false
PASS 'onsubmit' in textNode is false
PASS 'onbeforecut' in textNode is false
PASS 'oncut' in textNode is false
PASS 'onbeforecopy' in textNode is false
PASS 'oncopy' in textNode is false
PASS 'onbeforepaste' in textNode is false
PASS 'onpaste' in textNode is false
PASS 'onreset' in textNode is false
PASS 'onresize' in textNode is false
PASS 'onsearch' in textNode is false
PASS 'onselectstart' in textNode is false
PASS 'onunload' in textNode is false
Test Attribute
PASS 'onabort' in attribute is false
PASS 'onblur' in attribute is false
PASS 'onchange' in attribute is false
PASS 'onclick' in attribute is false
PASS 'oncontextmenu' in attribute is false
PASS 'ondblclick' in attribute is false
PASS 'ondrag' in attribute is false
PASS 'ondragend' in attribute is false
PASS 'ondragenter' in attribute is false
PASS 'ondragleave' in attribute is false
PASS 'ondragover' in attribute is false
PASS 'ondragstart' in attribute is false
PASS 'ondrop' in attribute is false
PASS 'onerror' in attribute is false
PASS 'onfocus' in attribute is false
PASS 'oninput' in attribute is false
PASS 'onkeydown' in attribute is false
PASS 'onkeypress' in attribute is false
PASS 'onkeyup' in attribute is false
PASS 'onload' in attribute is false
PASS 'onmousedown' in attribute is false
PASS 'onmousemove' in attribute is false
PASS 'onmouseout' in attribute is false
PASS 'onmouseover' in attribute is false
PASS 'onmouseup' in attribute is false
PASS 'onmousewheel' in attribute is false
PASS 'onscroll' in attribute is false
PASS 'onselect' in attribute is false
PASS 'onsubmit' in attribute is false
PASS 'onbeforecut' in attribute is false
PASS 'oncut' in attribute is false
PASS 'onbeforecopy' in attribute is false
PASS 'oncopy' in attribute is false
PASS 'onbeforepaste' in attribute is false
PASS 'onpaste' in attribute is false
PASS 'onreset' in attribute is false
PASS 'onresize' in attribute is false
PASS 'onsearch' in attribute is false
PASS 'onselectstart' in attribute is false
PASS 'onunload' in attribute is false
PASS successfullyParsed is true
TEST COMPLETE
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<link rel="stylesheet" href="../js/resources/js-test-style.css">
<script src="../js/resources/js-test-pre.js"></script>
</head>
<body>
<p id="description"></p>
<div id="console"></div>
<script src="resources/event-attribute-availability.js"></script>
<script src="../js/resources/js-test-post.js"></script>
</body>
</html>
description("This test that the DOM attribute event handlers are avaiable on the only elements and documents, and not all other nodes such as attributes and text nodes.");
var properties = ["onabort", "onblur", "onchange", "onclick", "oncontextmenu", "ondblclick", "ondrag", "ondragend", "ondragenter", "ondragleave", "ondragover", "ondragstart", "ondrop", "onerror", "onfocus", "oninput", "onkeydown", "onkeypress", "onkeyup", "onload", "onmousedown", "onmousemove", "onmouseout", "onmouseover", "onmouseup", "onmousewheel", "onscroll", "onselect", "onsubmit", "onbeforecut", "oncut", "onbeforecopy", "oncopy", "onbeforepaste", "onpaste", "onreset", "onresize", "onsearch", "onselectstart", "onunload"];
debug("Test Element");
var element = document.createElement("div");
for (var i = 0; i < properties.length; ++i) {
shouldBeTrue("'" + properties[i] + "' in element");
}
debug("\nTest Document");
for (var i = 0; i < properties.length; ++i) {
shouldBeTrue("'" + properties[i] + "' in document");
}
debug("\nTest Text Node");
var textNode = document.createTextNode("text");
for (var i = 0; i < properties.length; ++i) {
shouldBeFalse("'" + properties[i] + "' in textNode");
}
debug("\nTest Attribute");
var attribute = document.createAttribute("attr");
for (var i = 0; i < properties.length; ++i) {
shouldBeFalse("'" + properties[i] + "' in attribute");
}
successfullyParsed = true;
2009-06-21 Sam Weinig <sam@webkit.org>
Reviewed by Oliver Hunt.
Fix for https://bugs.webkit.org/show_bug.cgi?id=26596
Only expose event handler attributes to elements and documents.
Test: fast/dom/event-attribute-availability.html
* dom/Document.idl:
* dom/Element.idl:
* dom/Node.cpp:
* dom/Node.h:
* dom/Node.idl:
2009-06-21 Daniel Bates <dbates@intudata.com>
Reviewed by Adam Barth.
......
......@@ -243,6 +243,80 @@ module core {
// Only used from within WML layout tests, WML doesn't have JS support at all.
void resetWMLPageState();
void initializeWMLPageState();
#endif
#if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
#if !defined(LANGUAGE_COM) || !LANGUAGE_COM
// Event handler DOM attributes
attribute [DontEnum] EventListener onabort;
attribute [DontEnum] EventListener onblur;
attribute [DontEnum] EventListener onchange;
attribute [DontEnum] EventListener onclick;
attribute [DontEnum] EventListener oncontextmenu;
attribute [DontEnum] EventListener ondblclick;
attribute [DontEnum] EventListener ondrag;
attribute [DontEnum] EventListener ondragend;
attribute [DontEnum] EventListener ondragenter;
attribute [DontEnum] EventListener ondragleave;
attribute [DontEnum] EventListener ondragover;
attribute [DontEnum] EventListener ondragstart;
attribute [DontEnum] EventListener ondrop;
attribute [DontEnum] EventListener onerror;
attribute [DontEnum] EventListener onfocus;
attribute [DontEnum] EventListener oninput;
attribute [DontEnum] EventListener onkeydown;
attribute [DontEnum] EventListener onkeypress;
attribute [DontEnum] EventListener onkeyup;
attribute [DontEnum] EventListener onload;
attribute [DontEnum] EventListener onmousedown;
attribute [DontEnum] EventListener onmousemove;
attribute [DontEnum] EventListener onmouseout;
attribute [DontEnum] EventListener onmouseover;
attribute [DontEnum] EventListener onmouseup;
attribute [DontEnum] EventListener onmousewheel;
attribute [DontEnum] EventListener onscroll;
attribute [DontEnum] EventListener onselect;
attribute [DontEnum] EventListener onsubmit;
// attribute [DontEnum] EventListener oncanplay;
// attribute [DontEnum] EventListener oncanplaythrough;
// attribute [DontEnum] EventListener ondurationchange;
// attribute [DontEnum] EventListener onemptied;
// attribute [DontEnum] EventListener onended;
// attribute [DontEnum] EventListener onformchange;
// attribute [DontEnum] EventListener onforminput;
// attribute [DontEnum] EventListener oninvalid;
// attribute [DontEnum] EventListener onloadeddata;
// attribute [DontEnum] EventListener onloadedmetadata;
// attribute [DontEnum] EventListener onloadstart;
// attribute [DontEnum] EventListener onpause;
// attribute [DontEnum] EventListener onplay;
// attribute [DontEnum] EventListener onplaying;
// attribute [DontEnum] EventListener onprogress;
// attribute [DontEnum] EventListener onratechange;
// attribute [DontEnum] EventListener onreadystatechange;
// attribute [DontEnum] EventListener onseeked;
// attribute [DontEnum] EventListener onseeking;
// attribute [DontEnum] EventListener onshow;
// attribute [DontEnum] EventListener onstalled;
// attribute [DontEnum] EventListener onsuspend;
// attribute [DontEnum] EventListener ontimeupdate;
// attribute [DontEnum] EventListener onvolumechange;
// attribute [DontEnum] EventListener onwaiting;
// WebKit extensions
attribute [DontEnum] EventListener onbeforecut;
attribute [DontEnum] EventListener oncut;
attribute [DontEnum] EventListener onbeforecopy;
attribute [DontEnum] EventListener oncopy;
attribute [DontEnum] EventListener onbeforepaste;
attribute [DontEnum] EventListener onpaste;
attribute [DontEnum] EventListener onreset;
attribute [DontEnum] EventListener onresize;
attribute [DontEnum] EventListener onsearch;
attribute [DontEnum] EventListener onselectstart;
attribute [DontEnum] EventListener onunload;
#endif
#endif
};
......
......@@ -129,6 +129,79 @@ module core {
readonly attribute DOMString innerText;
#endif
#if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
#if !defined(LANGUAGE_COM) || !LANGUAGE_COM
// Event handler DOM attributes
attribute [DontEnum] EventListener onabort;
attribute [DontEnum] EventListener onblur;
attribute [DontEnum] EventListener onchange;
attribute [DontEnum] EventListener onclick;
attribute [DontEnum] EventListener oncontextmenu;
attribute [DontEnum] EventListener ondblclick;
attribute [DontEnum] EventListener ondrag;
attribute [DontEnum] EventListener ondragend;
attribute [DontEnum] EventListener ondragenter;
attribute [DontEnum] EventListener ondragleave;
attribute [DontEnum] EventListener ondragover;
attribute [DontEnum] EventListener ondragstart;
attribute [DontEnum] EventListener ondrop;
attribute [DontEnum] EventListener onerror;
attribute [DontEnum] EventListener onfocus;
attribute [DontEnum] EventListener oninput;
attribute [DontEnum] EventListener onkeydown;
attribute [DontEnum] EventListener onkeypress;
attribute [DontEnum] EventListener onkeyup;
attribute [DontEnum] EventListener onload;
attribute [DontEnum] EventListener onmousedown;
attribute [DontEnum] EventListener onmousemove;
attribute [DontEnum] EventListener onmouseout;
attribute [DontEnum] EventListener onmouseover;
attribute [DontEnum] EventListener onmouseup;
attribute [DontEnum] EventListener onmousewheel;
attribute [DontEnum] EventListener onscroll;
attribute [DontEnum] EventListener onselect;
attribute [DontEnum] EventListener onsubmit;
// attribute [DontEnum] EventListener oncanplay;
// attribute [DontEnum] EventListener oncanplaythrough;
// attribute [DontEnum] EventListener ondurationchange;
// attribute [DontEnum] EventListener onemptied;
// attribute [DontEnum] EventListener onended;
// attribute [DontEnum] EventListener onformchange;
// attribute [DontEnum] EventListener onforminput;
// attribute [DontEnum] EventListener oninvalid;
// attribute [DontEnum] EventListener onloadeddata;
// attribute [DontEnum] EventListener onloadedmetadata;
// attribute [DontEnum] EventListener onloadstart;
// attribute [DontEnum] EventListener onpause;
// attribute [DontEnum] EventListener onplay;
// attribute [DontEnum] EventListener onplaying;
// attribute [DontEnum] EventListener onprogress;
// attribute [DontEnum] EventListener onratechange;
// attribute [DontEnum] EventListener onreadystatechange;
// attribute [DontEnum] EventListener onseeked;
// attribute [DontEnum] EventListener onseeking;
// attribute [DontEnum] EventListener onshow;
// attribute [DontEnum] EventListener onstalled;
// attribute [DontEnum] EventListener onsuspend;
// attribute [DontEnum] EventListener ontimeupdate;
// attribute [DontEnum] EventListener onvolumechange;
// attribute [DontEnum] EventListener onwaiting;
// WebKit extensions
attribute [DontEnum] EventListener onbeforecut;
attribute [DontEnum] EventListener oncut;
attribute [DontEnum] EventListener onbeforecopy;
attribute [DontEnum] EventListener oncopy;
attribute [DontEnum] EventListener onbeforepaste;
attribute [DontEnum] EventListener onpaste;
attribute [DontEnum] EventListener onreset;
attribute [DontEnum] EventListener onresize;
attribute [DontEnum] EventListener onsearch;
attribute [DontEnum] EventListener onselectstart;
attribute [DontEnum] EventListener onunload;
#endif
#endif
};
}
......@@ -3097,204 +3097,204 @@ void Node::setOnmousewheel(PassRefPtr<EventListener> eventListener)
setAttributeEventListener(eventNames().mousewheelEvent, eventListener);
}
EventListener* Node::onbeforecut() const
EventListener* Node::ondragenter() const
{
return getAttributeEventListener(eventNames().beforecutEvent);
return getAttributeEventListener(eventNames().dragenterEvent);
}
void Node::setOnbeforecut(PassRefPtr<EventListener> eventListener)
void Node::setOndragenter(PassRefPtr<EventListener> eventListener)
{
setAttributeEventListener(eventNames().beforecutEvent, eventListener);
setAttributeEventListener(eventNames().dragenterEvent, eventListener);
}
EventListener* Node::oncut() const
EventListener* Node::ondragover() const
{
return getAttributeEventListener(eventNames().cutEvent);
return getAttributeEventListener(eventNames().dragoverEvent);
}
void Node::setOncut(PassRefPtr<EventListener> eventListener)
void Node::setOndragover(PassRefPtr<EventListener> eventListener)
{
setAttributeEventListener(eventNames().cutEvent, eventListener);
setAttributeEventListener(eventNames().dragoverEvent, eventListener);
}
EventListener* Node::onbeforecopy() const
EventListener* Node::ondragleave() const
{
return getAttributeEventListener(eventNames().beforecopyEvent);
return getAttributeEventListener(eventNames().dragleaveEvent);
}
void Node::setOnbeforecopy(PassRefPtr<EventListener> eventListener)
void Node::setOndragleave(PassRefPtr<EventListener> eventListener)
{
setAttributeEventListener(eventNames().beforecopyEvent, eventListener);
setAttributeEventListener(eventNames().dragleaveEvent, eventListener);
}
EventListener* Node::oncopy() const
EventListener* Node::ondrop() const
{
return getAttributeEventListener(eventNames().copyEvent);
return getAttributeEventListener(eventNames().dropEvent);
}
void Node::setOncopy(PassRefPtr<EventListener> eventListener)
void Node::setOndrop(PassRefPtr<EventListener> eventListener)
{
setAttributeEventListener(eventNames().copyEvent, eventListener);
setAttributeEventListener(eventNames().dropEvent, eventListener);
}
EventListener* Node::onbeforepaste() const
EventListener* Node::ondragstart() const
{
return getAttributeEventListener(eventNames().beforepasteEvent);
return getAttributeEventListener(eventNames().dragstartEvent);
}
void Node::setOnbeforepaste(PassRefPtr<EventListener> eventListener)
void Node::setOndragstart(PassRefPtr<EventListener> eventListener)
{
setAttributeEventListener(eventNames().beforepasteEvent, eventListener);
setAttributeEventListener(eventNames().dragstartEvent, eventListener);
}
EventListener* Node::onpaste() const
EventListener* Node::ondrag() const
{
return getAttributeEventListener(eventNames().pasteEvent);
return getAttributeEventListener(eventNames().dragEvent);
}
void Node::setOnpaste(PassRefPtr<EventListener> eventListener)
void Node::setOndrag(PassRefPtr<EventListener> eventListener)
{
setAttributeEventListener(eventNames().pasteEvent, eventListener);
setAttributeEventListener(eventNames().dragEvent, eventListener);
}
EventListener* Node::ondragenter() const
EventListener* Node::ondragend() const
{
return getAttributeEventListener(eventNames().dragenterEvent);
return getAttributeEventListener(eventNames().dragendEvent);
}
void Node::setOndragenter(PassRefPtr<EventListener> eventListener)
void Node::setOndragend(PassRefPtr<EventListener> eventListener)
{
setAttributeEventListener(eventNames().dragenterEvent, eventListener);
setAttributeEventListener(eventNames().dragendEvent, eventListener);
}
EventListener* Node::ondragover() const
EventListener* Node::onscroll() const
{
return getAttributeEventListener(eventNames().dragoverEvent);
return getAttributeEventListener(eventNames().scrollEvent);
}
void Node::setOndragover(PassRefPtr<EventListener> eventListener)
void Node::setOnscroll(PassRefPtr<EventListener> eventListener)
{
setAttributeEventListener(eventNames().dragoverEvent, eventListener);
setAttributeEventListener(eventNames().scrollEvent, eventListener);
}
EventListener* Node::ondragleave() const
EventListener* Node::onselect() const
{
return getAttributeEventListener(eventNames().dragleaveEvent);
return getAttributeEventListener(eventNames().selectEvent);
}
void Node::setOndragleave(PassRefPtr<EventListener> eventListener)
void Node::setOnselect(PassRefPtr<EventListener> eventListener)
{
setAttributeEventListener(eventNames().dragleaveEvent, eventListener);
setAttributeEventListener(eventNames().selectEvent, eventListener);
}
EventListener* Node::ondrop() const
EventListener* Node::onsubmit() const
{
return getAttributeEventListener(eventNames().dropEvent);
return getAttributeEventListener(eventNames().submitEvent);
}
void Node::setOndrop(PassRefPtr<EventListener> eventListener)
void Node::setOnsubmit(PassRefPtr<EventListener> eventListener)
{
setAttributeEventListener(eventNames().dropEvent, eventListener);
setAttributeEventListener(eventNames().submitEvent, eventListener);
}
EventListener* Node::ondragstart() const
EventListener* Node::onbeforecut() const
{
return getAttributeEventListener(eventNames().dragstartEvent);
return getAttributeEventListener(eventNames().beforecutEvent);
}
void Node::setOndragstart(PassRefPtr<EventListener> eventListener)
void Node::setOnbeforecut(PassRefPtr<EventListener> eventListener)
{
setAttributeEventListener(eventNames().dragstartEvent, eventListener);
setAttributeEventListener(eventNames().beforecutEvent, eventListener);
}
EventListener* Node::ondrag() const
EventListener* Node::oncut() const
{
return getAttributeEventListener(eventNames().dragEvent);
return getAttributeEventListener(eventNames().cutEvent);
}
void Node::setOndrag(PassRefPtr<EventListener> eventListener)
void Node::setOncut(PassRefPtr<EventListener> eventListener)
{
setAttributeEventListener(eventNames().dragEvent, eventListener);
setAttributeEventListener(eventNames().cutEvent, eventListener);
}
EventListener* Node::ondragend() const
EventListener* Node::onbeforecopy() const
{
return getAttributeEventListener(eventNames().dragendEvent);
return getAttributeEventListener(eventNames().beforecopyEvent);
}
void Node::setOndragend(PassRefPtr<EventListener> eventListener)
void Node::setOnbeforecopy(PassRefPtr<EventListener> eventListener)
{
setAttributeEventListener(eventNames().dragendEvent, eventListener);
setAttributeEventListener(eventNames().beforecopyEvent, eventListener);
}
EventListener* Node::onreset() const
EventListener* Node::oncopy() const
{
return getAttributeEventListener(eventNames().resetEvent);
return getAttributeEventListener(eventNames().copyEvent);
}
void Node::setOnreset(PassRefPtr<EventListener> eventListener)
void Node::setOncopy(PassRefPtr<EventListener> eventListener)
{
setAttributeEventListener(eventNames().resetEvent, eventListener);
setAttributeEventListener(eventNames().copyEvent, eventListener);
}
EventListener* Node::onresize() const
EventListener* Node::onbeforepaste() const
{
return getAttributeEventListener(eventNames().resizeEvent);
return getAttributeEventListener(eventNames().beforepasteEvent);