Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1346)

Side by Side Diff: Source/core/svg/SVGElement.cpp

Issue 1049513003: Add error dispatch events to SVGStyleElement (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fixes Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde .org> 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde .org>
3 * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org> 3 * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
4 * Copyright (C) 2008 Apple Inc. All rights reserved. 4 * Copyright (C) 2008 Apple Inc. All rights reserved.
5 * Copyright (C) 2008 Alp Toker <alp@atoker.com> 5 * Copyright (C) 2008 Alp Toker <alp@atoker.com>
6 * Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au> 6 * Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au>
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 765 matching lines...) Expand 10 before | Expand all | Expand 10 after
776 collectInstancesForSVGElement(this, instances); 776 collectInstancesForSVGElement(this, instances);
777 for (SVGElement* shadowTreeElement : instances) { 777 for (SVGElement* shadowTreeElement : instances) {
778 ASSERT(shadowTreeElement); 778 ASSERT(shadowTreeElement);
779 779
780 shadowTreeElement->Node::removeEventListener(eventType, listener, useCap ture); 780 shadowTreeElement->Node::removeEventListener(eventType, listener, useCap ture);
781 } 781 }
782 782
783 return true; 783 return true;
784 } 784 }
785 785
786 static bool hasLoadListener(Element* element) 786 static bool hasEventListener(Element* element, const AtomicString& eventType)
787 { 787 {
788 if (element->hasEventListeners(EventTypeNames::load)) 788 ASSERT(eventType == EventTypeNames::load || eventType == EventTypeNames::err or);
789 if (element->hasEventListeners(eventType))
789 return true; 790 return true;
790 791
791 for (element = element->parentOrShadowHostElement(); element; element = elem ent->parentOrShadowHostElement()) { 792 for (element = element->parentOrShadowHostElement(); element; element = elem ent->parentOrShadowHostElement()) {
792 const EventListenerVector& entry = element->getEventListeners(EventTypeN ames::load); 793 const EventListenerVector& entry = element->getEventListeners(eventType) ;
793 for (size_t i = 0; i < entry.size(); ++i) { 794 for (size_t i = 0; i < entry.size(); ++i) {
794 if (entry[i].useCapture) 795 if (entry[i].useCapture)
795 return true; 796 return true;
796 } 797 }
797 } 798 }
798 799
799 return false; 800 return false;
800 } 801 }
801 802
802 bool SVGElement::sendSVGLoadEventIfPossible() 803 bool SVGElement::sendSVGLoadEventIfPossible()
803 { 804 {
804 if (!haveLoadedRequiredResources()) 805 if (!haveLoadedRequiredResources())
805 return false; 806 return false;
806 if ((isStructurallyExternal() || isSVGSVGElement(*this)) && hasLoadListener( this)) 807 if ((isStructurallyExternal() || isSVGSVGElement(*this)) && hasEventListener (this, EventTypeNames::load))
807 dispatchEvent(Event::create(EventTypeNames::load)); 808 dispatchEvent(Event::create(EventTypeNames::load));
808 return true; 809 return true;
809 } 810 }
810 811
811 void SVGElement::sendSVGLoadEventToSelfAndAncestorChainIfPossible() 812 void SVGElement::sendSVGLoadEventToSelfAndAncestorChainIfPossible()
812 { 813 {
813 // Let Document::implicitClose() dispatch the 'load' to the outermost SVG ro ot. 814 // Let Document::implicitClose() dispatch the 'load' to the outermost SVG ro ot.
814 if (isOutermostSVGSVGElement()) 815 if (isOutermostSVGSVGElement())
815 return; 816 return;
816 817
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after
1186 Element::trace(visitor); 1187 Element::trace(visitor);
1187 } 1188 }
1188 1189
1189 const AtomicString& SVGElement::eventParameterName() 1190 const AtomicString& SVGElement::eventParameterName()
1190 { 1191 {
1191 DEFINE_STATIC_LOCAL(const AtomicString, evtString, ("evt", AtomicString::Con structFromLiteral)); 1192 DEFINE_STATIC_LOCAL(const AtomicString, evtString, ("evt", AtomicString::Con structFromLiteral));
1192 return evtString; 1193 return evtString;
1193 } 1194 }
1194 1195
1195 } // namespace blink 1196 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698