| Index: Source/core/svg/SVGElement.cpp
|
| diff --git a/Source/core/svg/SVGElement.cpp b/Source/core/svg/SVGElement.cpp
|
| index b73a0e6d79993ba563a7a2563b580e517f21065c..baaa4da8c3e9fb4216acb1ac89f99726996ae0dc 100644
|
| --- a/Source/core/svg/SVGElement.cpp
|
| +++ b/Source/core/svg/SVGElement.cpp
|
| @@ -783,13 +783,14 @@ bool SVGElement::removeEventListener(const AtomicString& eventType, PassRefPtr<E
|
| return true;
|
| }
|
|
|
| -static bool hasLoadListener(Element* element)
|
| +static bool hasEventListener(Element* element, const AtomicString& eventType)
|
| {
|
| - if (element->hasEventListeners(EventTypeNames::load))
|
| + ASSERT(eventType == EventTypeNames::load || eventType == EventTypeNames::error);
|
| + if (element->hasEventListeners(eventType))
|
| return true;
|
|
|
| for (element = element->parentOrShadowHostElement(); element; element = element->parentOrShadowHostElement()) {
|
| - const EventListenerVector& entry = element->getEventListeners(EventTypeNames::load);
|
| + const EventListenerVector& entry = element->getEventListeners(eventType);
|
| for (size_t i = 0; i < entry.size(); ++i) {
|
| if (entry[i].useCapture)
|
| return true;
|
| @@ -803,7 +804,7 @@ bool SVGElement::sendSVGLoadEventIfPossible()
|
| {
|
| if (!haveLoadedRequiredResources())
|
| return false;
|
| - if ((isStructurallyExternal() || isSVGSVGElement(*this)) && hasLoadListener(this))
|
| + if ((isStructurallyExternal() || isSVGSVGElement(*this)) && hasEventListener(this, EventTypeNames::load))
|
| dispatchEvent(Event::create(EventTypeNames::load));
|
| return true;
|
| }
|
|
|