| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org> | 2 * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org> |
| 3 * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org> | 3 * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org> |
| 4 * Copyright (C) 2006 Apple Inc. All rights reserved. | 4 * Copyright (C) 2006 Apple Inc. All rights reserved. |
| 5 * Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au> | 5 * Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au> |
| 6 * | 6 * |
| 7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
| 8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
| 9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
| 10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
| 11 * | 11 * |
| 12 * This library is distributed in the hope that it will be useful, | 12 * This library is distributed in the hope that it will be useful, |
| 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| 15 * Library General Public License for more details. | 15 * Library General Public License for more details. |
| 16 * | 16 * |
| 17 * You should have received a copy of the GNU Library General Public License | 17 * You should have received a copy of the GNU Library General Public License |
| 18 * along with this library; see the file COPYING.LIB. If not, write to | 18 * along with this library; see the file COPYING.LIB. If not, write to |
| 19 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | 19 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
| 20 * Boston, MA 02110-1301, USA. | 20 * Boston, MA 02110-1301, USA. |
| 21 */ | 21 */ |
| 22 | 22 |
| 23 #include "core/svg/SVGStyleElement.h" | 23 #include "core/svg/SVGStyleElement.h" |
| 24 | 24 |
| 25 #include "core/MediaTypeNames.h" | 25 #include "core/MediaTypeNames.h" |
| 26 #include "core/css/CSSStyleSheet.h" | 26 #include "core/css/CSSStyleSheet.h" |
| 27 #include "core/dom/TaskRunnerHelper.h" |
| 27 #include "core/events/Event.h" | 28 #include "core/events/Event.h" |
| 28 #include "wtf/StdLibExtras.h" | 29 #include "wtf/StdLibExtras.h" |
| 29 | 30 |
| 30 namespace blink { | 31 namespace blink { |
| 31 | 32 |
| 32 static SVGStyleEventSender& styleErrorEventSender() | |
| 33 { | |
| 34 DEFINE_STATIC_LOCAL(SVGStyleEventSender, sharedErrorEventSender, (SVGStyleEv
entSender::create(EventTypeNames::error))); | |
| 35 return sharedErrorEventSender; | |
| 36 } | |
| 37 | |
| 38 inline SVGStyleElement::SVGStyleElement(Document& document, bool createdByParser
) | 33 inline SVGStyleElement::SVGStyleElement(Document& document, bool createdByParser
) |
| 39 : SVGElement(SVGNames::styleTag, document) | 34 : SVGElement(SVGNames::styleTag, document) |
| 40 , StyleElement(&document, createdByParser) | 35 , StyleElement(&document, createdByParser) |
| 41 { | 36 { |
| 42 } | 37 } |
| 43 | 38 |
| 44 SVGStyleElement::~SVGStyleElement() | 39 SVGStyleElement::~SVGStyleElement() |
| 45 { | 40 { |
| 46 } | 41 } |
| 47 | 42 |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 139 void SVGStyleElement::childrenChanged(const ChildrenChange& change) | 134 void SVGStyleElement::childrenChanged(const ChildrenChange& change) |
| 140 { | 135 { |
| 141 SVGElement::childrenChanged(change); | 136 SVGElement::childrenChanged(change); |
| 142 if (StyleElement::childrenChanged(*this) == StyleElement::ProcessingFatalErr
or) | 137 if (StyleElement::childrenChanged(*this) == StyleElement::ProcessingFatalErr
or) |
| 143 notifyLoadedSheetAndAllCriticalSubresources(ErrorOccurredLoadingSubresou
rce); | 138 notifyLoadedSheetAndAllCriticalSubresources(ErrorOccurredLoadingSubresou
rce); |
| 144 } | 139 } |
| 145 | 140 |
| 146 void SVGStyleElement::notifyLoadedSheetAndAllCriticalSubresources(LoadedSheetErr
orStatus errorStatus) | 141 void SVGStyleElement::notifyLoadedSheetAndAllCriticalSubresources(LoadedSheetErr
orStatus errorStatus) |
| 147 { | 142 { |
| 148 if (errorStatus != NoErrorLoadingSubresource) | 143 if (errorStatus != NoErrorLoadingSubresource) |
| 149 styleErrorEventSender().dispatchEventSoon(this); | 144 TaskRunnerHelper::get(TaskType::DOMManipulation, &document())->postTask(
BLINK_FROM_HERE, WTF::bind(&SVGStyleElement::dispatchPendingEvent, wrapPersisten
t(this))); |
| 150 } | 145 } |
| 151 | 146 |
| 152 void SVGStyleElement::dispatchPendingEvent(SVGStyleEventSender* eventSender) | 147 void SVGStyleElement::dispatchPendingEvent() |
| 153 { | 148 { |
| 154 ASSERT_UNUSED(eventSender, eventSender == &styleErrorEventSender()); | |
| 155 dispatchEvent(Event::create(EventTypeNames::error)); | 149 dispatchEvent(Event::create(EventTypeNames::error)); |
| 156 } | 150 } |
| 157 | 151 |
| 158 DEFINE_TRACE(SVGStyleElement) | 152 DEFINE_TRACE(SVGStyleElement) |
| 159 { | 153 { |
| 160 StyleElement::trace(visitor); | 154 StyleElement::trace(visitor); |
| 161 SVGElement::trace(visitor); | 155 SVGElement::trace(visitor); |
| 162 } | 156 } |
| 163 | 157 |
| 164 } // namespace blink | 158 } // namespace blink |
| OLD | NEW |