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

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

Issue 290353002: SVG: Moving animating <svg> to other iframe should not crash. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: RELEASE_ASSERT Created 6 years, 7 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006 Apple Inc. All rights reserved. 2 * Copyright (C) 2006 Apple Inc. All rights reserved.
3 * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org> 3 * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
4 * Copyright (C) 2007 Rob Buis <buis@kde.org> 4 * Copyright (C) 2007 Rob Buis <buis@kde.org>
5 * 5 *
6 * This library is free software; you can redistribute it and/or 6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public 7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either 8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version. 9 * version 2 of the License, or (at your option) any later version.
10 * 10 *
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 104
105 void SVGDocumentExtensions::startAnimations() 105 void SVGDocumentExtensions::startAnimations()
106 { 106 {
107 // FIXME: Eventually every "Time Container" will need a way to latch on to s ome global timer 107 // FIXME: Eventually every "Time Container" will need a way to latch on to s ome global timer
108 // starting animations for a document will do this "latching" 108 // starting animations for a document will do this "latching"
109 // FIXME: We hold a ref pointers to prevent a shadow tree from getting remov ed out from underneath us. 109 // FIXME: We hold a ref pointers to prevent a shadow tree from getting remov ed out from underneath us.
110 // In the future we should refactor the use-element to avoid this. See https ://webkit.org/b/53704 110 // In the future we should refactor the use-element to avoid this. See https ://webkit.org/b/53704
111 WillBeHeapVector<RefPtrWillBeMember<SVGSVGElement> > timeContainers; 111 WillBeHeapVector<RefPtrWillBeMember<SVGSVGElement> > timeContainers;
112 timeContainers.appendRange(m_timeContainers.begin(), m_timeContainers.end()) ; 112 timeContainers.appendRange(m_timeContainers.begin(), m_timeContainers.end()) ;
113 WillBeHeapVector<RefPtrWillBeMember<SVGSVGElement> >::iterator end = timeCon tainers.end(); 113 WillBeHeapVector<RefPtrWillBeMember<SVGSVGElement> >::iterator end = timeCon tainers.end();
114 for (WillBeHeapVector<RefPtrWillBeMember<SVGSVGElement> >::iterator itr = ti meContainers.begin(); itr != end; ++itr) 114 for (WillBeHeapVector<RefPtrWillBeMember<SVGSVGElement> >::iterator itr = ti meContainers.begin(); itr != end; ++itr) {
115 (*itr)->timeContainer()->begin(); 115 SMILTimeContainer* timeContainer = (*itr)->timeContainer();
116 if (!timeContainer->isStarted())
117 timeContainer->begin();
118 }
116 } 119 }
117 120
118 void SVGDocumentExtensions::pauseAnimations() 121 void SVGDocumentExtensions::pauseAnimations()
119 { 122 {
120 WillBeHeapHashSet<RawPtrWillBeMember<SVGSVGElement> >::iterator end = m_time Containers.end(); 123 WillBeHeapHashSet<RawPtrWillBeMember<SVGSVGElement> >::iterator end = m_time Containers.end();
121 for (WillBeHeapHashSet<RawPtrWillBeMember<SVGSVGElement> >::iterator itr = m _timeContainers.begin(); itr != end; ++itr) 124 for (WillBeHeapHashSet<RawPtrWillBeMember<SVGSVGElement> >::iterator itr = m _timeContainers.begin(); itr != end; ++itr)
122 (*itr)->pauseAnimations(); 125 (*itr)->pauseAnimations();
123 } 126 }
124 127
125 void SVGDocumentExtensions::dispatchSVGLoadEventToOutermostSVGElements() 128 void SVGDocumentExtensions::dispatchSVGLoadEventToOutermostSVGElements()
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after
476 } 479 }
477 480
478 void SVGDocumentExtensions::trace(Visitor* visitor) 481 void SVGDocumentExtensions::trace(Visitor* visitor)
479 { 482 {
480 visitor->trace(m_timeContainers); 483 visitor->trace(m_timeContainers);
481 visitor->trace(m_svgFontFaceElements); 484 visitor->trace(m_svgFontFaceElements);
482 visitor->trace(m_pendingSVGFontFaceElementsForRemoval); 485 visitor->trace(m_pendingSVGFontFaceElementsForRemoval);
483 } 486 }
484 487
485 } 488 }
OLDNEW
« no previous file with comments | « LayoutTests/svg/dom/resources/svg-with-animate.svg ('k') | Source/core/svg/animation/SMILTimeContainer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698