Index: Source/core/svg/SVGElement.cpp |
diff --git a/Source/core/svg/SVGElement.cpp b/Source/core/svg/SVGElement.cpp |
index 2c6330373c52ee3c9a3585b6e91146b4378b72c6..b00bbde44f0094bcea18055dee08a4af03cb4dcd 100644 |
--- a/Source/core/svg/SVGElement.cpp |
+++ b/Source/core/svg/SVGElement.cpp |
@@ -34,8 +34,9 @@ |
#include "core/css/parser/BisonCSSParser.h" |
#include "core/dom/Document.h" |
#include "core/dom/ElementTraversal.h" |
-#include "core/events/Event.h" |
#include "core/dom/shadow/ShadowRoot.h" |
+#include "core/events/Event.h" |
+#include "core/html/HTMLElement.h" |
#include "core/rendering/RenderObject.h" |
#include "core/rendering/svg/RenderSVGResourceContainer.h" |
#include "core/svg/SVGCursorElement.h" |
@@ -651,48 +652,20 @@ void SVGElement::setCorrespondingElement(SVGElement* correspondingElement) |
void SVGElement::parseAttribute(const QualifiedName& name, const AtomicString& value) |
{ |
- // standard events |
- if (name == onloadAttr) |
- setAttributeEventListener(EventTypeNames::load, createAttributeEventListener(this, name, value)); |
- else if (name == onclickAttr) |
- setAttributeEventListener(EventTypeNames::click, createAttributeEventListener(this, name, value)); |
- else if (name == onmousedownAttr) |
- setAttributeEventListener(EventTypeNames::mousedown, createAttributeEventListener(this, name, value)); |
- else if (name == onmouseenterAttr) |
- setAttributeEventListener(EventTypeNames::mouseenter, createAttributeEventListener(this, name, value)); |
- else if (name == onmouseleaveAttr) |
- setAttributeEventListener(EventTypeNames::mouseleave, createAttributeEventListener(this, name, value)); |
- else if (name == onmousemoveAttr) |
- setAttributeEventListener(EventTypeNames::mousemove, createAttributeEventListener(this, name, value)); |
- else if (name == onmouseoutAttr) |
- setAttributeEventListener(EventTypeNames::mouseout, createAttributeEventListener(this, name, value)); |
- else if (name == onmouseoverAttr) |
- setAttributeEventListener(EventTypeNames::mouseover, createAttributeEventListener(this, name, value)); |
- else if (name == onmouseupAttr) |
- setAttributeEventListener(EventTypeNames::mouseup, createAttributeEventListener(this, name, value)); |
- else if (name == SVGNames::onfocusinAttr) |
- setAttributeEventListener(EventTypeNames::focusin, createAttributeEventListener(this, name, value)); |
- else if (name == SVGNames::onfocusoutAttr) |
- setAttributeEventListener(EventTypeNames::focusout, createAttributeEventListener(this, name, value)); |
- else if (name == SVGNames::onactivateAttr) |
- setAttributeEventListener(EventTypeNames::DOMActivate, createAttributeEventListener(this, name, value)); |
- else if (name == HTMLNames::classAttr) { |
+ if (name == HTMLNames::classAttr) { |
// SVG animation has currently requires special storage of values so we set |
// the className here. svgAttributeChanged actually causes the resulting |
// style updates (instead of Element::parseAttribute). We don't |
// tell Element about the change to avoid parsing the class list twice |
setClassNameBaseValue(value); |
- } else if (name == ontouchstartAttr) { |
- setAttributeEventListener(EventTypeNames::touchstart, createAttributeEventListener(this, name, value)); |
- } else if (name == ontouchmoveAttr) { |
- setAttributeEventListener(EventTypeNames::touchmove, createAttributeEventListener(this, name, value)); |
- } else if (name == ontouchendAttr) { |
- setAttributeEventListener(EventTypeNames::touchend, createAttributeEventListener(this, name, value)); |
- } else if (name == ontouchcancelAttr) { |
- setAttributeEventListener(EventTypeNames::touchcancel, createAttributeEventListener(this, name, value)); |
} else if (name.matches(XMLNames::langAttr) || name.matches(XMLNames::spaceAttr)) { |
} else { |
- Element::parseAttribute(name, value); |
+ // standard events |
+ const AtomicString& eventName = HTMLElement::eventNameForAttributeName(name); |
+ if (!eventName.isNull()) |
+ setAttributeEventListener(eventName, createAttributeEventListener(this, name, value)); |
+ else |
+ Element::parseAttribute(name, value); |
} |
} |